先简单说几句:好像两个月没写文章了,但还是像以前一样,每天至少花一到两个小时在花园里读大神的文章。前几天学习了“ajax上传不刷新”中的一些插件,用SWFUpload实现了上传不刷新的功能,但我觉得还不够完善。
昨天在网上找到一个叫uploadify的jquery上传插件。我在花园里看到几篇文章也介绍了这个插件。我想为什么不试试这个。
不过花园里这些文章用的uploadify是旧版的uploadify-v2.1.0,我是从官网下载的uploadify-v3.1。有些参数和调用方法也不一样。好在官网有帮助文档。
(唯一不愉快的是这个开发包是针对php的,官网也没有. NET版本,但至少原理是一样的,所以简单修改一下。还是那句话,“不仅知道为什么,还要知道为什么”,知道了为什么,一切都是浮云。)
好了,废话少说。首先,转到最后的渲染图。有图有真相:
1.我从官网下载了开发包,添加到项目中。我简化了这个开发包并删除了那些php文件:
项目基本结构:
二:添加对css和js文件的引用:
注意jquery.js文件和uploadify.js文件的调用顺序。
三:Default.aspx页面的代码如下:
head runat=' server ' title/title link href=' js/uploadify/uploadify . CSS ' rel='样式表' type=' text/CSS '/Script src=' http : js/jquery-1 . 4 . 1-vsdoc . js ' type=' text/JavaScript '/Script src=' http : js/uploadify/jquery . uploadify-3 . 1 . js ' type=' text/JavaScript '/uploadify({//指定swf文件' swf ' : ' js/uploadify/uploadify . swf ',//后台处理页面' uploader ' : ' uploadhandler . ashx ',//按钮显示文字' buttonText': '上传图片',//显示高度和宽度,默认高度30;宽度120/'高度' : 15,//'宽度' 3360 80,//上传文件类型默认为All Files*.*//文本“filetypedesc”:“图像文件”显示在浏览窗口底部的文件类型下拉菜单中,//允许的文件后缀“filetypexts”: *。gif*.jpg*.发送到后台的png ',//其他参数由formData指定。//“form data”: {“某个键”:“某个值”、“某个其他键”: 1}。//在上传文件页面,默认自动生成要作为文件队列的元素的id为false。不带#//'队列id' : '文件队列',//选择文件后自动上传' auto' : true,//设置为true将允许多个文件上传' multi ' : true });});//script/headbody div % -用作文件队列区域-%div id=' filequeue'/div输入类型=' file ' name=' uploadify ' id=' uploadify '/p a href=' JavaScript 3360 $(' # Upload ')。上传(' upload ')'上传/a | a href=' JavaScript : $(' # upload ')。上传(' cancel ')'取消上传/a/p/div/body/htmliv:常规处理程序uploadhandler。
public void process request(HttpContext上下文){ context。响应。内容类型='文本/纯文本';//http://www.cnblogs.com/babycool///receive上传的文件;//其他参数//string some key=context . request[' some key '];//字符串其他=上下文。请求[' somotherkey '];//获取文件字符串uploadpath=httpcontext的保存路径。current . server . map path(' uploadimages ' ' ');//如果(文件!=null) { if(!目录。存在(上传路径)){目录。创建目录(上传路径);}//保存文件file . save as(uploadpath file . filename);语境。回应。写下(' 1 ');} else { context。响应。写入(' 0 ');} } public bool IsReuse { get { return false;}}五:使用参数介绍:
您可以通过查看jquery.uploadify-3.1.js中的默认设置并参考官方文档来了解:
如果没有重新指定,参数将保持默认值:
swf:uploadify . swf文件的相对路径
上传者:后台进程的相对路径
按钮文本:按钮显示的文本
上传文件的类型默认为所有文件“所有文件”*。*'
它可以由以下两个参数指定。有关指定的方法,请参见步骤3中的代码:
文件类型描述;fileTypeExts
自动:如果为真,选择后会自动上传文件;如果不想自动上传,需要设置为false并通过
a href=' JavaScript : $(' # uploadify ')。uploadify ('upload ')'上传/a | a href=' JavaScript 3360 $(' # upload ify ')。uploadify ('cancel ')'取消上载/a指定是上载还是取消上载;
Multi:设置为true,允许上传多个文件;
方法:提交方式Post或Get默认为Post;
QueueSizeLimit:当允许上传多个文件时,设置选中文件的数量,默认值为999;
另外,取消上传图片的路径是在css文件中设置的;
更多设置请参考官网帮助文档。
六:显示中文上传后显示的完成
英文完成不能改为中文。"这可能是因为以前的版本无法修改。我通过查看源代码jquery.uploadify-3.1.js找到了上传完成时显示的内容:
参考官方的帮助文件,我们可以知道在”
OnUploadSuccess”事件可以设置上传完成后要执行的代码,修改后的代码为:
//选择文件后自动上传' auto' : true。//设置为true将允许多个文件上传' multi' : true。//执行“上传成功时”3360函数(文件、数据、响应){ $(“#”file . id)。查找('。data) }另外需要注意的一点是:一般在设置上传文件的路径时,例如只有*。允许上传jpg*.巴布亚新几内亚;*.gif格式的图像文件,除了指定的fileTypeDesc;fileTypeExts除了这两个参数之外,上传文件的文件扩展名还要在服务器端,也就是通用处理程序中重新判断,防止部分用户跳过客户端验证,上传恶意文件。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。