要使用uplaodify3.1,自然要下载相应的包,下载地址http://www.uploadify.com/download/,这里有两种包,一个是基于flash,免费的,一个是基于html5,需要付费,我这里所说的也是前一种。当然现在可能已经不再是3.1版本了,估计是3.2了。不过,差别不会太大!
首先在页面中引入一下文件:
<link rel="stylesheet" type="text/css" href="css/uploadify.css"> <script type="text/javascript" src="js/jquery-1.4.4.js"></script> <script type="text/javascript" src="js/jquery.uploadify-3.1.js"></script> <script type="text/javascript" src="js/jquery.uploadify-3.1.min.js"></script>
uploadify.swf要和css放在一起,不然会找不到。
jsp页面里:
<input type="file" name="uploadify" id="uploadify" value="浏览"/> <div id="fileQueue" style="border-top: thin solid gray;"></div>
一下是我自己的页面的代码:
<script type="text/javascript"> $('#rightFrame').load(function(){ var account = $("#account").val(); var id= $("#userId").val(); var currentNode=0; $("#uploadify").uploadify({ //注:这里uploadify为html标签,文件输入框id swf: 'css/uploadify.swf', uploader: 'uploadfile.action;', cancelImg: '/images/uploadify-cancel.png', buttonText:'选择文件', fileObjName :'uploadify', auto: true, multi:true, Debug:true, queueID:'fileQueue',//这里fileQueue 为上传进度条显示在哪个div里 formData:{'account':account,'id':id,'currentNode':$("#rightFrame").contents().find("#test").val()}, removeCompleted:true, queueSizeLimit:999, fileSizeLimit:'100MB', height:28, width:90, successTimeout:28, requeueErrors:true, uploadLimit:5, onUploadSuccess: function (file, data, response) { if(response) { currentNode=data; } }, onQueueComplete : function(stats){ window.parent.rightFrame.location.href="fileaction?filenode="+currentNode; alert("上传完毕"); } }); }); </script>
属性解释:
auto | Boolean | True | 添加到队列后是否自动上传 |
buttonClass | String | Empty String | 为Uploadify按钮添加一个类名 |
buttonCursor | String | “hand” | 鼠标移上浏览按钮显示的鼠标样式 两个值:arrow(箭头)、hand(手形) |
buttonImage | String | Null | “浏览”按钮的背景图像的路径。 如果使用默认的样式,你可以设置按钮悬停状态(这个选项是一个方便的选项和按钮分配图像的最佳方式是在CSS文件中。) |
buttonText | String | “SELECT FILES” | 显示在浏览按钮上的文本。注:若没有修改uploadify.swf的字体和uploadify.js文件的编码方式,使用中文将会是乱码 |
checkExisting | String |
|
|
Debug | Boolean | False | 设置为True打开SWFUpload调试模式。 |
fileObjName | String | “Filedata” | 在服务器端接收文件的Form表单键名 |
fileSizeLimit | Number | 0 | 允许上传文件的最大大小。这个值可以是一个数字或字符串。如果它是一个字符串,它接受一个单位(B, KB, MB, or GB)。默认单位为KB。您可以将此值设置为0 ,没有限制。 |
fileTypeDesc | String | “All Files” | 可选的文件的说明。此字符串将出现在浏览文件对话框的文件类型下拉框中。 |
fileTypeExts | String | “*.*” | 允许上传的文件扩展名。可以以英文分号隔开的多种文件扩展名。即”*.jpg;*.gif;” 注:如果用户手动键入文件名,将会绕过此安全级别,所以你需要在后台再次对文件名类型进行验证。 |
formData | JSON Object | Empty Object | 一个额外的JSON对象数据,将与每个文件一起发送至服务器端。如果为动态值,请在onUploadStart()中使用settings()方法更改该JSON值 |
Height | Number | 30 | 浏览按钮所显示的高度 |
method | String | “post” | 上传文件的方式。 两个值:”get”、”post” |
multi | Boolean | True | 设置是否为多文件上传,如果设置为False,一次将只能上传一个文件 |
overrideEvents | JSON Array | Empty Array | 你想绕过的默认脚本的事件名称的数组。你可以告诉在文档页中的每个事件可以被重写的事件。 |
preventCaching | Boolean | True | 一个防止Flash缓存和冲突的方式,如果设置为True,则Flash的URL将会添加一个随机数。 |
progressData | String | “percentage” | 设置要在文件上传进度更新队列项目中显示数据的类型。 两个值”percentage”(显示百分比)、” speed”(显示速度) |
queueID | String | False | 上传文件队列所放的元素ID,必须为ID,且不像jQuery选择器那样,它不需要加#号。如果为false,则队列会自动添加到浏览按钮下方。 |
queueSizeLimit | Number | 999 | 一次可以在队列中文件的最大数目。这并不限制可以上载的文件的数目。若要限制可以上载的文件的数目,请使用 uploadLimit。如果选定要添加到队列的文件的数目超过此限制,则会触发 onSelectError 事件。 |
removeCompleted | Boolean | True | 当文件上传完成后,是否将此文件从上传队列中清除(默认清除)。 |
removeTimeout | Number | 3 | 从文件上传完成到清除此文件之间的延迟。单位:秒 |
requeueErrors | Boolean | False | 如果设置为true,期间上传回传失误,重新排队,并多次试图上传的文件。 |
successTimeout | Number | 30 | 上传成功后,将等待服务器的响应时间。在此时间后,若服务器未响应,则默认为成功(因为已经上传完成,只是等待服务器的响应)。单位:秒 |
swf | String | “uploadify.swf” | uploadify中的uploadify.swf的路径,可以是相对或绝对路径。相对路径为相对于当前页面路径。 |
uploader | String | “uploadify.php” | 服务器上传脚本,即接收上传文件后台处理文件路径,可以是相对或绝对路径。相对路径为相对于当前页面路径。 |
uploadLimit | Number | 999 | 允许您上传的文件的最大数量。当达到或超过这个数字, onUploadError事件被触发。 |
width | Number | 120 | 浏览按钮的宽度。 |
需要注意的是:fileObjName属性 它必须和你服务器里文件接收名一致,不然接收不到路径!