发一个支持多文件选择,可以过滤文件类型的纯js(非flash来实现)jquery插件jquery.multiFiles.js。多文件选择需要IE10+和其他标准浏览器,如chrome,firefox才支持。IE9-不支持multiple属性,或者移动端不支持multiple多选择文件时,只能一个一个选择,效果如下 多文件选择上传jquery插件jquery.multiFiles.js有2个方法,reset和setExt。reset用于重置插件UI,删除已经选中的文件。setExt动态修改允许上传的文件类型及可以同时上传的文件数量(默认30个)。//method:方法名称,reset或者shttp://www.w3dev.cn/article/20160608/jquery-multiple-file-select-upload-plugin.aspx
ploadify的cancel方法后,如果再选择文件,超出uploadLimit配置值会报错。看源代码后,uploadify调用cancel方法只有清空队列的情况下(传递*参数,$(xxx).uploadify(cancel,*))才会重置上传队列的值,对于取消单个文件或者指定了多个要取消的队列id参数,没有重置队列长度,继续包含被取消上传的文件数量。所以继续选择文件就会报超过队列的错误了。 解决uploadify调用cancel取消上传后,再选择文件上传报超过文件限制的错误办法如下。用编辑工具打开jquery.uploadify.js这个文件。注意是未压缩版本的uploadify,压缩的没http://www.w3dev.cn/article/20150506/fix-uploadify-cancel-queue-reselect-file-exceeds-upload-limit.aspx
alert('上一次上传还未完毕!'); return false; } if (/\.(jpg|png|bmp|gif)$/i.test(f.value)) { //判断选择的是否为图片文件 uploading = true;//设置正在上传标志,只允许上一次上传完毕后才能选择新文件进行上传 f.form.submit(); } else alert('请选择图片文件!'); } function callback(o) { //上传完毕后的回调函数,提供给ifhttp://www.w3dev.cn/article/20130909/auto-upload-file-return-server-file-name.aspx
的拖放事件实现监控文件的拖拽,然后使用FormData及XMLHttpRequest对象将文件上传到服务器。更多XMLHttpRequest新特性参考此文:XMLHttpRequest Level 2新特性介绍 如果你的浏览器拖拽文件不是执行上传操作而是在浏览器打开或者弹出保存对话框,那么你的浏览器应该不支持拖放上传功能,请使用firefox或者chrome来测试。 源代码如下!DOCTYPE HTMLhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8titleHTML5拖拽多文件上传asp.net示例http://www.w3dev.cn/article/20130826/asp.net-html5-drag-drop-upload-demo.aspx
e.FileExt response.Write server.MapPath(fn) file.saveas server.MapPath(fn) response.Write 文件保存成功,a href='fn' target='_blank'点击这里查看文件!/aelse response.Write 未上传文件end if%upload_5xsoft.asp上传类库源代码和使用说明%dim Data_5xsoftClass upload_5xsoft dim objForm,objFile,Version'获取表单中的输入项Publichttp://www.w3dev.cn/article/20130305/upload-5xsoft-upload-demo.aspx
单中的文件内容,结合ajax对象XMLHttpRequest就可以无刷新的上传文件了。FormData对象实例有一个方法叫做append,允许加入任何形式的数据(文本和文件)的对象。不过悲催的是IE9虽然支持html5,但是没有FormData对象。 测试代码html xmlns=http://www.w3.org/1999/xhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8 /titlehtml5 ajax上传文件asp.net示例/title/headbodyh1html5 ajax上传文件asphttp://www.w3dev.cn/article/20121128/html5-ajax-upload-file-asp.net-demo.aspx
通过HTML5的文件API ,Firefox、Chrome等浏览器已经支持从操作系统直接拖拽文件进入浏览器,并上传到服务器。 让我们看一下Firefox 是如何使用拖拽上传功能的: 1)首先提供一个区域来放置文件div name=image id=dropbox style=min-width:300px;min-height:100px;border:3px dashed silver;/div2)然后监听拖拽过程中的dragenter、dragleave、drop等事件document.addEventListener(dragenter, function(e){ drohttp://www.w3dev.cn/article/20121123/upload-file-drag-in-browser.aspx
asp.net中要上传的文件大于100m时,现在国内使用的大文件上传的组件用的比较多的有两个控件 AspnetUpload 2.0和Lion.Web.UpLoadModule。 两个控件的方法是:利用隐含的HttpWorkerRequest,用它的 GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。 Chris Hynes为我们提供了这样的一个方案(用HttpModule),该方案除了允许你上传大文件外,还能实时显示上传进度。 Lion.Web.UpLoadModule和AspnetUpload 两http://www.w3dev.cn/article/20120226/asp-net-upload-big-file.aspx
firefox上传文件时只能获取图片的文件名不能获取全路径,因此不能预览,怎么解决呢? =========== firefox,ie7,ie8都是不能直接访问本地文件的。比如+展开-HTMLimgsrc="C:\DocumentsandSettings\Administrator.WWW-00E83A94D30\MyDocuments\MyPictures\winter.jpg"/会给你显示一个X,只有IE6下才有这个权限可以访问,高版本的浏览器出于安全考虑都已删除此项功能。下面为获取file控件全路径的一个功能+展开-JavaScriptvarFilePath={getFilePath:fhttp://www.w3dev.cn/article/20110620/firefox-file-get-full-path.aspx
/第二种,修改fck_image.html文件。1)用记事本打开fck_image.html文件,将页面编码从utf-8转为gb2312。+展开-HTML!--metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/--metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/2)用记事本另存为功能,检查下fck_image.html文件的存储编码是否为ANSI,如果不是,还得修改fck_image.html文件的存储编码,从utf-8转为ANSI。 http://www.w3dev.cn/article/20110128/not-rename-fckedotor-upload-cn-garbled.aspx
ame.Substring(i);returnName;}//获取文件扩展名publicstaticstringGetExtension(stringfileName){inti=fileName.LastIndexOf(".")+1;stringName=fileName.Substring(i);returnName;}//#region//运行FFMpeg的视频解码,(这里是绝对路径)//////转换文件并保存在指定文件夹下面(这里是绝对路径)//////上传视频文件的路径(原文件)///转换后的文件的路径(网络播放文件)///从视频文件中抓取的图片路径///成功:返回图片虚拟地址;失http://www.w3dev.cn/article/20101122/2951.aspx
就需要上传文件。例如在论坛中,用户需要上传文件分享信息或在博客中上传视频分享快乐等等。上传文件在ASP中是一个复杂的问题,可能需要通过组件才能够实现文件的上传。在ASP.NET中,开发环境默认的提供了文件上传控件来简化文件上传的开发。当开发人员使用文件上传控件时,将会显示一个文本框,用户可以键入或通过“浏览”按键浏览和选择希望上传到服务器的文件。创建一个文件上传控件系统生成的HTML代码如下所示。+展开-HTMLasp:FileUploadID="FileUpload1"runat="server"/ 文件上传控件可视化设置属性较少,大部分都是通过代码控制完成的。当用户选择了一个文件并提交http://www.w3dev.cn/article/20100519/2413.aspx
问题我想让用户上传文件解决办法使用FileReference对象的upload( )方法讨论FileReference对象的upload( )方法允许使用服务端脚本通过HTTP(s)上传文件,upload( )方法至少需要一个为URLRequest类型的对象作为参数,用于指定服务端脚本的URL:+展开-ActionScriptvarurlRequest:URLRequest=newURLRequest("uploadScript.cgi");fileReference.upload(urlRequest);所有上传使用POST传输方式,Content-Type为multipart/form-http://www.w3dev.cn/article/20100301/1758.aspx
问题我想知道文件的上传进度解决办法监听progress事件讨论和监视下载进度一样,当文件上传时FileReference 对象发出progress 事件,完成时发出completed事件,请看第23.3 节。http://www.w3dev.cn/article/20100301/1759.aspx
在原来的ajax类库基础上添加了post方法,直接提交表单,而不需要手动收集要提交的键和值。并在此基础上判断enctype是否为"multipart/form-data"类型,如果是则表单提交到隐藏的iframe中实现无刷新上传文件。不过需要注意的是网站使用的编码为utf-8。+展开-JavaScriptvarShowbo={version:'1.0',author:'showbo',intro:'通用',homepage:'//'};//是否为ie浏览器Showbo.IsIE=!!document.all;//从字符串或者xhr对象还原为json对象Showbo.Ajax.ErrorJsonhttp://www.w3dev.cn/article/20100106/1280.aspx
巧【上传文件数】在文件上传实例中,各个文件是同时上传的。经测试,浏览器能同时上传的文件数如下:ie 2ff 8opera 8chrome 6safari 6由于ie最多同时只能传2个,所以设置更多文件也只能排队,而不能达到同时上传的效果的。ps:只是目测结果,有错请提出。【传递参数】上传文件实例中,可以传递对应的修改文件名,在使用“一般上传”多个文件一起上传时也能找到对应的文件名。因为表单控件值传递到后台后,获取数据的顺序跟前台表单控件的排列顺序是一致的。只要保证前台file控件跟对应表单控件的排列顺序一致就能利用这个特性获取对应的值了。详细参考后台代码。【回调函数】有两个方法可以响应上传完成http://www.w3dev.cn/article/20091222/1218.aspx
数了。【多文件上传】对于多文件上传,这里的目的是如何做到163网盘那样,只用一个file控件就实现多文件上传。这里参考了163网盘的思路,下面说说如何实现:首先必须有一个文件空间(我自己定的名字),例如程序中的"idFile"对象,这个空间不需要内容甚至一个div就可以,主要是用来存放file控件,程序中Folder属性就是这个文件空间对象。ps:这里的要求是把file控件都控制在文件空间里,即使不是单file控件的情况。再说说Files属性,这个属性放的是file控件集合,方便获取file控件,在下面“文件列表”就会用到。处理这些file控件的程序主要在Ini函数中:首先是处理文件空间中的fhttp://www.w3dev.cn/article/20091222/1219.aspx
tedFile f = Request.Files[upfile];//获取上传的文件 string des = Request.Form[des]//获取描述 ,newFileName=Guid.NewGuid().ToString();//使用guid生成新文件名 if (f.FileName == )//未上传文件 Response.Write( );//输出js,使用parent对象得到父页的引用 else { //保存文件 newFileName += System.IO.Phttp://www.w3dev.cn/article/20090707/ajax-no-fresh-upload-files-by-iframe.aspx
ls实现的一款多文件无刷新上传工具。最大的特点是可以一次选择多个文件,无刷新上传。早些时候曾想过一次选择多个文件的问题,浏览器默认的file标签一次只能选择一个文件,要浏览并读取本地文件就必须调用本地的组件或命令,所以单纯用javascript+html无解。今天查看订阅的feeds时,无意中在Ajaxian看到这个演示图片上选择了多个文件:非常好奇,过去看了一下demo,果然可以一次选择多个文件!Browsfile的button没什么特别,就是一个button,肯定是通过js触发了某个动作。前面说过js和html是不能实现这个功能的,那么肯定是flash实现了这个功能。文件里面有个Swifhttp://www.w3dev.cn/article/20090701/342.aspx
情嘛:)二、上传难题以前用UpdatePanel的时候,涉及到上传都只能在做一个小页面用Postback来做;现在用Callback,还是只能使用新页面在Postback;尝试过好几个Ajax 上传组件,最终败倒在其不稳定下。昨天偶在codeproject查找资料,看到Flash 上传文件的介绍,才突然想起这个被自己遗忘在角落里的咚咚。察看了下Flash 的API,发现FileReference和FileReferenceList对文件的上传支持已经相当的好了。事件摘要事件说明onCancel = function(fileRef:FileReference) {}当用户取消文件浏览对话框时http://www.w3dev.cn/article/20090701/343.aspx
上传白名单 和 自动生成上传文件名 就可以避免。。。 能操作服务器直接设置脚本执行权限就最好了。。。发表于:2008-05-30 15:05:3329楼 得分:0 再说,他不一定要在你上传目录执行这个,通过你别的漏洞,比如还原数据库漏洞,或者一些网站还有文件管理的功能,等等这些漏洞移走 发表于:2008-05-30 15:08:1230楼 得分:10 据说只用 上传白名单 和 自动生成上传文件名 就可以避免。。。 这个也不能完全避免 自动生成文件名只是让人一时找不到文件罢了 上传白名单? 指的什么?限制上传IP? 还是限制上传类型? 限制上传IP不切实际,限制上传类型都没用 不管怎么说你上传http://www.w3dev.cn/article/20090629/199.aspx
行处理的ASP程序,在本文的后面将陆续介绍其内容。 2、上传文件格式分析 在处理文件之前,我们要先了解上传的文件的具体格式,通过编写下面一段简单的ASP程序就可以查看其二进制代码: <% filesize=Request.TotalBytes '获得上传文件的大小 filedata=Request.BinaryRead(filesize) '获得上传文件的二进制数据 Response.BinaryWrite filedata '在浏览器上显示二进制数据 %> 分析浏览器上显示的上传文件的二进制代码,发现代码包括四个部分(若同时上传多个文件或文本框,则代码按上传的先后次序排列,格式相同),每一部http://www.w3dev.cn/article/20090601/40.aspx
es(postData);// 上传数据,并获取返回的二进制数据.byte[] responseArray = myWebClient.UploadData(uriString,POST,byteArray); WebClient上传只包含文件的示例代码String uriString = http://localhost/uploadFile.aspx;// 创建一个新的 WebClient 实例.WebClient myWebClient = new WebClient();string fileName = @C:/upload.txt;// 直接上传,并获取返回的二进制数据.bythttp://www.w3dev.cn/article/20140528/Asp.Net-upload-form-data-include-file.aspx
.ServerVariables(SCRIPT_NAME)aspUrl = left(aspUrl, InStrRev(aspUrl, /))'文件保存目录路径savePath = ../attached/'''''''''如果要改变根目录,修改这里'文件保存目录URLsaveUrl = aspUrl ../attached/'定义允许上传的文件扩展名imageExtStr = gif|jpg|jpeg|png|bmpflashExtStr = swf|flvmediaExtStr = swf|http://www.w3dev.cn/article/20131107/kindeditor-attach-save-path-modify.aspx
本示例示范了如何使用asp.net保存文件到access数据库并且读取保存的的文件。1)首先,在Access中建立一个表mg,结构如字段名 字段类型 说明ID 自动编号 系统分配ID值Imgtype 文本 上传文件类型imgdata OLE对象 上传文件数据read.aspx页面主要代码form id=form1 runat=server div asp:FileUpload ID=FileUpload1 runat=server Width=345px / asp:Button ID=Button1 runat=server Texhttp://www.w3dev.cn/article/20130402/asp.net-save-file-to-access-and-read-demo.aspx
3)=width= ret(1) height= ret(2) getimagesize=retEnd FunctionEnd Class% 将以上代码复制生成GPS.asp文件,这样无组件获取图片尺寸的通用类就OK了。 2.获取图片路径 由于不只一张图片,以及图片需分类存放,我们在数据库中设计了一个存放图片相 对路径的字段ImgURL。我们把上传的图片都放在一个名为images的文件夹中(至于如何无组件上传图片心晴就不在多说了)。现在我们先设计一个 ShowImg.asp页面用来显示缩略图及相关信息。具体设计如下: 图片: 图片格式: 图片尺寸: 图片大小: 点击次数: http://www.w3dev.cn/article/20130317/asp-No-components-create-Thumbnail.aspx
now)second(now)ranNum.file.FileExt)'file.SaveToFile Server.mappath(filename)'rs(imgname)=filename'*****************rs.updateset file=nothingset upload=nothing注意:asp默认上传大小是200kb(提交的内容,包括文字和文件大小的总和,不单是指文件的大小),如果你提交的内容大于200kb,需要修改iis的默认配置,具体参考:修改默认asp默认上传大小示例源代码下载:asp将上传文件2进制数据写入access数据库示例http://www.w3dev.cn/article/20120913/asp-upload-file-class.aspx
andleFiles(this.files) / 在用户选择多个文件后,handleFiles函数可以通过FileList对象得到所选择的每个File对象。 通过拖放操作实现文件的多选,只需要先定义一个可拖放的区域,然后添加,dragenter、dragover和drop事件,在drop事件里,可以通过e.dataTransfer.files 得到所选择的文件集合。 对于每一个文件对象,可以通过name属性得到文件名,size属性得到文件的大小,type属性得到文件的MIME 类型,可以使用FileReader对象读取文件的内容。比如,下面的例子是得到文件名、文件大小和文件类型的:!DOhttp://www.w3dev.cn/article/20120413/firefox-support-multiple-files-upload.aspx
的数据了。 为了减少编辑器的大小,可以删除一些不必要的文件,如把_samples、_source、_tests三个文件夹删除,进入lang文件目录,保留en.js、zh.js、zh-cn.js三个文件,其余的语言文件如果你用不到,可以删除。CKFinder的配置: 1、把解压后的/ckfinder/夹拷贝到你的web目录下;然后把bin目录下的dll文件拷到你自己的bin目录下。 2、创建一个上传文件的目录。在默认配置的情况下,/ckfinder/userfiles/是上传目录;如果想修改上传目录,修改 config.ascx文件中的BaseUrl = "/uploads/",这里是以http://www.w3dev.cn/article/20110504/ckeditor-upload-config.aspx
些远程地址到服务器的动态页,然后处理完毕后返回本地的图片路径,方便更新img的src为自己服务器的url地址。 2)动态页方面,使用C#的ashx文件下载图片。考虑到了防盗链的动态页加载图片的问题,所以不能通过判断url的后缀是否为图片文件这种方法,也就不好使用webclient直接下载文件。而是使用httpwebrequest来请求图片url【包括防盗链的地址】,然后通过httpwebresponse的ContentType来或者实际图片文件的后缀。 实现代码如下,可能和实际的应用有些差别,在使用时自己修改下。 ajax+js代码+展开 -JavaScript varimgs=dohttp://www.w3dev.cn/article/20101216/web-html-editor-remote-images-auto-upload.aspx