属性
$(‘#file_upload‘).uploadify({ //一属性详解 id: jQuery(this).attr(‘id‘),//绑定的input的ID langFile:‘/assets/uploadify/uploadifyLang_en.js‘,//语言包的路径,能设置所有的提示文字 swf: ‘/assets/uploadify/uploadify.swf‘,//[必须设置]swf的路径 uploader: ‘/jsp/upload/upload.action‘,//[必须设置]处理上传动作的的url auto:false,//文件选择完成后,是否自动上传 buttonText:‘上传附件‘,//上传按钮的文字 height: 30,//上传按钮的高和宽 width: 120, formData:{},//JSON格式上传每个文件的同时提交到服务器的额外数据,可在’onUploadStart’事件中使用’settings’方法动态设置。 buttonCursor: ‘pointer‘,//上传鼠标hover后Cursor的形状 cancelImage: ‘http://www.static-xxx.nu/uploadify-cancel.png‘,//[必须设置]取消图片的路径 checkExisting:‘/uploader/uploadify-check-existing.action‘,//检查上传文件是否存,触发的url,返回1/0 debug: true,//如果设置为true则表示启用SWFUpload的调试模式 fileObjName:‘file‘,//文件上传对象的名称 fileSizeLimit : 0,//文件的极限大小,以字节为单位,0为不限制。1MB:1*1024*1024 fileTypeDesc: ‘Bild JPG‘,//允许上传的文件类型的描述,在弹出的文件选择框里会显示 fileTypeExts: ‘*.jpg‘,//允许上传的文件类型,限制弹出文件选择框里能选择的文件 method: ‘post‘,//和后台交互的方式:post/get multi: true,//是否能选择多个文件 itemTemplate:false,//用于设置上传队列的HTML模版,可以使用以下标签:instanceID – Uploadify实例的IDfileID – 列队中此文件的ID,或者理解为此任务的IDfileName – 文件的名称fileSize – 当前上传文件的大小插入模版标签时使用格式如:${fileName} queueID: ‘fileQueue‘,//设置上传队列容器DOM元素的ID,如果为false则自动生成一个队列容器。 queueSizeLimit : 999,//队列最多显示的任务数量,如果选择的文件数量超出此限制,将会出发onSelectError事件。 注意此项并非最大文件上传数量,如果要限制最大上传文件数量,应设置uploadLimit。 progressData : ‘all‘, // ‘percentage‘‘speed‘‘all‘//队列中显示文件上传进度的方式:all-上传速度+百分比,percentage-百分比,speed-上传速度 removeCompleted : true,//是否自动将已完成任务从队列中删除,如果设置为false则会一直保留此任务显示。 removeTimeout: 3,//如果设置了任务完成后自动从队列中移除,则可以规定从完成到被移除的时间间隔。 requeueErrors : true,//如果设置为true,则单个任务上传失败后将返回错误,并重新加入任务队列上传。 postData: {},//和后台交互时,附加的参数 preventCaching : true,//如果为true,则每次上传文件时自动加上一串随机字符串参数,防止URL缓存影响上传结果 transparent: true, overrideEvents:[‘onUploadProgress‘,‘‘,‘‘],//设置哪些事件可以被重写,JSON格式,如:’overrideEvents’ : [‘onUploadProgress‘] successTimeout : 30,//文件上传成功后服务端应返回成功标志,此项设置返回结果的超时时间 timeoutuploadLimit:999,//能同时上传的文件数目 uploadLimit:11,//最大上传文件数量,如果达到或超出此限制将会触发onUploadError事件。 //二事件详解 onCancel:function(file){//当点击文件队列中文件的关闭按钮或点击取消上传时触发,file参数为被取消上传的文件对象 alert( ‘id: ‘ + file.id//队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index// SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus); }, onClearQueue:function(queueItemCount){//当调用函数cancel方法时触发, //queueItemCount参数为被取消上传的文件数量。 alert(‘取消上传文件的数量:‘+queueItemCount); }, onDestroy:function(){//当destory方法被调用时触发 }, onDisable:function(){//当disable方法禁用Uploadify上传按钮时被调用时触发。 }, onEnable:function(){//当disable方法启用Uploadify上传按钮时被调用时触发。 }, onFallback:function(){//当Uploadify初始化过程中检测到当前浏览器不支持flash时触发。 }, onInit:function(){// 首次初始化Uploadify结束时触发。 }, onDialogClose : function(swfuploadifyQueue) {//当文件选择对话框关闭时触发 if( swfuploadifyQueue.filesErrored > 0 ){ alert( ‘添加至队列时有‘ +swfuploadifyQueue.filesErrored +‘个文件发生错误n‘ +‘错误信息:‘ +swfuploadifyQueue.errorMsg +‘n选定的文件数:‘ +swfuploadifyQueue.filesSelected +‘n成功添加至队列的文件数:‘ +swfuploadifyQueue.filesQueued +‘n队列中的总文件数量:‘ +swfuploadifyQueue.queueLength); }; }, onDialogOpen : function() {//当选择文件对话框打开时触发 alert( ‘Open!‘); }, onSWFReady:function(){//Flash文件载入成功后触发。 }, onSelect : function(file) {//当每个文件添加至队列后触发 alert( ‘id: ‘ + file.id//队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index// SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus); }, onSelectError : function(file,errorCode,errorMsg) {//当文件选定发生错误时触发 alert( ‘id: ‘ + file.id//队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index// SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus + ‘ - 错误代码: ‘ + errorCode + ‘ - 错误信息: ‘ + errorMsg ); }, onQueueComplete : function(stats) {//当队列中的所有文件全部完成上传时触发 alert( ‘成功上传的文件数: ‘ + stats.successful_uploads + ‘ - 上传出错的文件数: ‘ + stats.upload_errors + ‘ - 取消上传的文件数: ‘ + stats.upload_cancelled + ‘ - 出错的文件数‘ + stats.queue_errors ); }, onUploadComplete : function(file,swfuploadifyQueue) {//每个文件上传完毕后无论成功与否都会触发一次 alert( ‘id: ‘ + file.id//队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index// SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus + ‘ - 出错的文件数: ‘ + swfuploadifyQueue.filesErrored + ‘ - 错误信息: ‘ + swfuploadifyQueue.errorMsg + ‘ - 要添加至队列的数量: ‘ + swfuploadifyQueue.filesSelected + ‘ - 添加至对立的数量: ‘ + swfuploadifyQueue.filesQueued + ‘ - 队列长度: ‘ + swfuploadifyQueue.queueLength); }, onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) {//上传文件出错是触发(每个出错文件触发一次) alert( ‘id: ‘ + file.id//队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index// SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus + ‘ - 错误代码: ‘ + errorCode + ‘ - 错误描述: ‘ + errorMsg + ‘ - 简要错误描述: ‘ + errorString + ‘ - 出错的文件数: ‘ + swfuploadifyQueue.filesErrored + ‘ - 错误信息: ‘ + swfuploadifyQueue.errorMsg + ‘ - 要添加至队列的数量: ‘ + swfuploadifyQueue.filesSelected + ‘ - 添加至对立的数量: ‘ + swfuploadifyQueue.filesQueued + ‘ - 队列长度: ‘ + swfuploadifyQueue.queueLength); }, onUploadProgress : function(file,fileBytesLoaded,fileTotalBytes, queueBytesLoaded,swfuploadifyQueueUploadSize) {//上传进度发生变更时触发 alert( ‘id: ‘ + file.id//队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index// SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus + ‘ - 当前文件已上传的字节数: ‘ + fileBytesLoaded + ‘ - 文件总字节数: ‘ + fileTotalBytes + ‘ - 当前任务队列中全部文件已上传的总字节数: ‘ + queueBytesLoaded + ‘ - 当前任务队列中全部文件的总字节数: ‘ + swfuploadifyQueueUploadSize ); }, onUploadStart: function(file) {//上传开始时触发(每个文件触发一次) alert( ‘id: ‘ + file.id //队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index // SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus ); }, onUploadSuccess : function(file,data,response) {//当文件上传成功时触发,每个文件会触发一次 //file 文件对象 alert( ‘id: ‘ + file.id //队列中的id(如 SWFUpload_0_1),在进度条显示的时候,对应文件进度条的id,可以控制显隐 + ‘ - 索引: ‘ + file.index // SWFUpload_0_1 后面的1 + ‘ - 文件名: ‘ + file.name + ‘ - 文件大小: ‘ + file.size + ‘ - 类型: ‘ + file.type + ‘ - 创建日期: ‘ + file.creationdate + ‘ - 修改日期: ‘ + file.modificationdate + ‘ - 文件状态: ‘ + file.filestatus + ‘ - 服务器端消息: ‘ + data//服务端返回的信息 + ‘ - 是否上传成功: ‘ + response //有输出时为true,如果无响应为false,如果返回的是false,当超过successTimeout设置的时间后假定为true ); } }); |
三、方法
1 2 3 |
cancel(fileID, suppressEvent)//取消队列中的任务,不管此任务是否已经开始上传 // fileID – 要取消的文件ID,如果为空则取消队列中第一个任务,如果为‘*‘则取消所有任务 // suppressEvent – 是否阻止触发onUploadCancel事件,当清空队列时非常实用。 |
1 2 3 |
<a href="javascript:$(‘#file_upload‘).uploadify(‘cancel‘)">取消第一个</a> <a href="javascript:$(‘#file_upload‘).uploadify(‘cancel‘, ‘*‘)">清空队列</a> <a href="javascript:$(‘#file_upload‘).uploadify(‘upload‘, ‘*‘)">开始上传所有任务</a> |
1 2 |
destroy() //销毁Uploadify实例并将文件上传按钮恢复到原始状态 |
1 |
<a href="javascript:$(‘#file_upload‘).uploadify(‘destroy‘)">销毁Uploadify实例</a> |
1 2 |
disable(setDisabled)// 禁用或启用文件浏览按钮 // setDisabled – 设置为true表示禁用,false为启用 |
1 2 |
<a href="javascript:$(‘#file_upload‘).uploadify(‘disable‘, true)">禁用按钮</a> <a href="javascript:$(‘#file_upload‘).uploadify(‘disable‘, false)">启用按钮</a> |
1 2 3 4 |
settings(name, value, resetObjects)//获取或设置Uploadify实例参数 // name – 属性名称,如果只提供属性名称则表示获取其值 // value – 属性值 // resetObjects – 设置为true时,更新postData对象将清空现有的值。否则,新的值将被添加到其末尾。 |
1 2 |
$(‘#file_upload‘).uploadify(‘settings‘,‘buttonText‘,‘BROWSE‘);//设置上传按钮的文字 $(‘#file_upload‘).uploadify(‘settings‘,‘buttonText‘));//获取上传按钮名称的文字 |
1 |
stop()//停止当前正在上传的任务 |
1 2 |
<a href="javascript:$(‘#file_upload‘).uploadify(‘upload‘, ‘*‘)">开始上传</a> <a href="javascript:$(‘#file_upload‘).uploadify(‘stop‘)">停止上传</a> |
1 |
upload(fileID)// 立即上传指定的文件,如果fileID为‘*‘表示上传所有文件,要指定上传多个文件,则将每个文件的fileID作为一个参数 |
1 |
<a href="javascript:$(‘#file_upload‘).uploadify(‘upload‘,‘*‘)">开始上传所有文 |