详解jQuery uploadify文件上传插件的使用方法
程序员文章站
2023-11-06 11:40:52
uploadify这个插件是基于js里面的jquery库写的。结合了ajax和flash,实现了这个多线程上传的功能。
现在最新版为3.2.1。
在线实例
实例中用到...
uploadify这个插件是基于js里面的jquery库写的。结合了ajax和flash,实现了这个多线程上传的功能。
现在最新版为3.2.1。
在线实例
实例中用到的php文件uploaderdemo.php请在页面下方下载
引入文件
- <link rel="stylesheet" type="text/css" href="uploadify.css" />
- <script type="text/javascript" src="jquery.min.js"></script>
- <script type="text/javascript" src="jquery.uploadify.js"></script>
使用方法
<form> <div id="queue"></div> <input id="file_upload" name="file_upload" type="file" multiple="true"> </form> <div id="uploadfiles"></div> <div id="filequeue" style="clear:both"></div> <script type="text/javascript"> var timestamp = new date().gettime(); var token = math.floor(math.random() * 1000) + timestamp; $(function() { $('#file_upload').uploadify({ 'buttontext': '选择文件..', 'fileobjname': 'simplefile', 'method': 'post', 'multi': true, 'queueid': 'filequeue', //'uploadlimit': 2, 'filetypeexts': '*.gif;*.png;*.jpg;*.bmp;*.jpeg;', 'buttonimage': '/static/js/uploadify/select.png', 'formdata': { 'timestamp': timestamp, 'token': token }, 'swf': '/static/js/uploadify/uploadify.swf', 'uploader': '/static/php/uploaderdemo.php', 'onuploadstart': function() { $imghtml = '<img class="upload_load" src="/static/images/upload.gif" align="absmiddle" />'; $('#uploadfiles').append($imghtml); }, 'onuploadsuccess': function(file, data, response) { $('.upload_load').remove(); var json = $.parsejson(data); if (json.state == 'success') { $imghtml = '<span id="file_' + json.file_id + '">'; $imghtml += '<a href="' + json.file + '" target="_blank">'; $imghtml += '<img src="' + json.file + '" width="100" height="100" align="absmiddle"/>'; $imghtml += '</a>'; $imghtml += '<a href="javascript:uploadifyremove("' + json.file + '")">删除</a>'; $imghtml += '</span>'; $($imghtml).appendto('#uploadfiles'); } else { alert(json.message); } }, 'onqueuecomplete': function() { $('.upload_load').remove(); } }); }); </script>
参数说明
属性名称 | 默认值 | 说明 |
auto | true | 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。 |
buttonclass | ” | 按钮样式 |
buttoncursor | ‘hand' | 鼠标指针悬停在按钮上的样子 |
buttonimage | null | 浏览按钮的图片的路径 。 |
buttontext | ‘select files' | 浏览按钮的文本。 |
checkexisting | false | 文件上传重复性检查程序,检查即将上传的文件在服务器端是否已存在,存在返回1,不存在返回0 |
debug | false | 如果设置为true则表示启用swfupload的调试模式 |
fileobjname | ‘filedata' | 文件上传对象的名称,如果命名为'the_files',php程序可以用$_files['the_files']来处理上传的文件对象。 |
filesizelimit | 0 |
上传文件的大小限制 ,如果为整数型则表示以kb为单位的大小,如果是字符串,则可以使用(b, kb, mb, or gb)为单位,比如'2mb'; 如果设置为0则表示无限制 |
filetypedesc | ‘all files' | 这个属性值必须设置filetypeexts属性后才有效,用来设置选择文件对话框中的提示文本,如设置filetypedesc为“请选择rar doc pdf文件” |
filetypeexts | ‘*.*' | 设置可以选择的文件的类型,格式如:'*.doc;*.pdf;*.rar' 。 |
formdata | json格式上传每个文件的同时提交到服务器的额外数据,可在'onuploadstart'事件中使用'settings'方法动态设置。 | |
height | 30 | 设置浏览按钮的高度 ,默认值 |
itemtemplate | false | 用于设置上传队列的html模版,可以使用以下标签: instanceid – uploadify实例的id fileid – 列队中此文件的id,或者理解为此任务的id filename – 文件的名称 filesize – 当前上传文件的大小 插入模版标签时使用格式如:${filename} |
method | post | 提交方式post或get |
multi | true | 设置为true时可以上传多个文件。 |
overrideevents | 设置哪些事件可以被重写,json格式,如:'overrideevents' : ['onuploadprogress'] | |
preventcaching | true | 如果为true,则每次上传文件时自动加上一串随机字符串参数,防止url缓存影响上传结果 |
progressdata | ‘percentage' | 设置上传进度显示方式,percentage显示上传百分比,speed显示上传速度 |
queueid | false | 设置上传队列容器dom元素的id,如果为false则自动生成一个队列容器。 |
queuesizelimit | 999 | 队列最多显示的任务数量,如果选择的文件数量超出此限制,将会出发onselecterror事件。 注意此项并非最大文件上传数量,如果要限制最大上传文件数量,应设置uploadlimit。 |
removecompleted | true | 是否自动将已完成任务从队列中删除,如果设置为false则会一直保留此任务显示。 |
removetimeout | 3 | 如果设置了任务完成后自动从队列中移除,则可以规定从完成到被移除的时间间隔。 |
requeueerrors | false | 如果设置为true,则单个任务上传失败后将返回错误,并重新加入任务队列上传。 |
successtimeout | 30 | 文件上传成功后服务端应返回成功标志,此项设置返回结果的超时时间 |
swf | ‘uploadify.swf' | uploadify.swf 文件的相对路径。 |
uploader | uploadify.php | 后台处理程序的相对路径。 |
uploadlimit | 999 | 最大上传文件数量,如果达到或超出此限制将会触发onuploaderror事件。 |
width | 120 | 设置文件浏览按钮的宽度。 |
事件名称 | 说明 |
oncancel(file) |
当点击文件队列中文件的关闭按钮或点击取消上传时触发,file参数为被取消上传的文件对象 |
onclearqueue(queueitemcount) | 当调用函数cancel方法时触发,queueitemcount参数为被取消上传的文件数量。 |
ondestroy() | 当destory方法被调用时触发 |
ondialogclose(queuedata) |
当文件浏览框关闭时触发,如果将此事件被重写,则当向队列添加文件上传出错时不会弹出错误消息提示。 queuedata对象包含如下属性:
|
ondialogopen() | 当文件选择对话框弹出时立即出发,但可能在文件选择对话框被关闭之前并不能全部执行。 |
ondisable() | 当disable方法禁用uploadify上传按钮时被调用时触发。 |
onenable() | 当disable方法启用uploadify上传按钮时被调用时触发。 |
onfallback() | 当uploadify初始化过程中检测到当前浏览器不支持flash时触发。 |
oninit() | 首次初始化uploadify结束时触发。 |
onqueuecomplete(queuedata) |
文件上传队列处理完毕后触发。 queuedata对象包含如下属性:
|
onselect(file) |
选择文件后向队列中添加每个上传任务时都会触发。 |
onselecterror(file, errorcode, errormsg) |
选择文件后向队列中添加每个上传任务时如果失败都会触发。 file – 文件对象 errorcode – 错误代码如下:
errormsg – 错误提示,可通过'this.queuedata.errormsg'定制 |
onswfready() | flash文件载入成功后触发。 |
onuploadcomplete(file) | 每个文件上传完毕后无论成功与否都会触发。 |
onuploaderror(file, errorcode, errormsg, errorstring) | 文件上传出错时触发,参数由服务端程序返回。 |
onuploadprogress(file, bytesuploaded, bytestotal, totalbytesuploaded, totalbytestotal) |
处理上传队列的过程中会多次触发此事件,每当任务状态有更新时都会触发。
|
onuploadstart(file) | 当文件即将开始上传时立即触发 |
onuploadsuccess(file, data, response) |
当文件上传成功时触发
|
方法名称 | 说明 | 应用举例 |
cancel(fileid, suppressevent) |
取消队列中的任务,不管此任务是否已经开始上传
|
|
destroy() | 销毁uploadify实例并将文件上传按钮恢复到原始状态 |
|
disable(setdisabled) |
禁用或启用文件浏览按钮 setdisabled – 设置为true表示禁用,false为启用 |
|
settings(name, value, resetobjects) |
获取或设置uploadify实例参数
|
|
stop() | 停止当前正在上传的任务 |
|
upload(fileid) | 立即上传指定的文件,如果fileid为'*'表示上传所有文件,要指定上传多个文件,则将每个文件的fileid作为一个参数 |
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
推荐阅读
-
jQuery文件上传插件Uploadify使用指南
-
jQuery+php实现ajax文件即时上传的详解
-
详解jQuery uploadify文件上传插件的使用方法
-
利用jQuery异步上传文件的插件用法详解
-
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
-
Jquery 模板数据绑定插件的使用方法详解
-
jquery.uploadify.3.2.1试用在IE9,IE10中上传文件的按钮会无法点击如何解决
-
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
-
详解jQuery uploadify文件上传插件的使用方法
-
jQuery+php实现ajax文件即时上传的详解