Uploadify插件的参数属性、事件、方法函数详解

Web上传文件是一个很常用的功能,试用过不少上传组件,要么是每次只能选择一个文件,要么是选择了文件后不能取消,直接上传,要么就是对文件、队列等限制支持不佳。面对这么多问题,Uploadify插件全部都能实现。
Uploadify是一个jQuery插件,你可以很容易的为你的网站添加多个文件上传功能。它有两个不同的版本(HTML5和Flash)允许你灵活选择为您的网站实现各种场景下的功能和需求。它的优点如下:
多文件上传
    Uploadify的主要好处是它允许多个文件上传,支持ctrl多选
支持拖放文件
    文件上传的HTML5版本(uploadifive)允许拖放文件到队列,实现拖放上传
支持上传进度
    当文件被上传时,进度条显示当前的上传进度,多个文件分别显示各个文件的上传进度
自定义上传限制
    设置文件大小限制,文件计数限制,文件类型限制,同时上传限制,确保我们的服务器安全
最大程度定制化
    Uploadify几乎各方面功能都可以完全定制,这样你就可以根据具体需要,自由地创建你确实需要的uploader。
当然Uploadify也有缺陷,比如很多浏览器默认是禁用flash的,也不支持断点上传等,实现代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
$( function () {
     $( "#file_upload_1" ).uploadify({
         height        : 30, //高度
         swf           :  '/uploadify/uploadify.swf' , //指定swf文件
         uploader      :  '/uploadify/uploadify.php' , //后台处理的url
         width         : 120, //宽度
         buttonText:  '上传图片' //按钮显示的文字
         fileTypeExts:   '*.*' , //上传文件的类型,默认为所有文件,多个类型使用;分割'*.gif; *.jpg; *.png'
         fileTypeDesc:  'Image Files' , //可选择文件的描述,在浏览窗口底部的文件类型下拉菜单中显示的文本
         formData: { 'someKey' : 'someValue' , 'someOtherKey' :1}, //发送给后台的其他参数通过formData指定
         //上传文件页面中,你想要用来作为文件队列的元素的id, 默认为false,自动生成,不带#
         queueID:  'fileQueue' ,
         auto:  true , //选择文件后自动上传
         multi:  true , //设置为true将允许多文件上传
         buttonClass: 'xttblog' , //上传按钮的样式
         buttonImage: '' , //按钮的图片路径
         buttonCursor: 'hand' , //鼠标指针悬停在按钮上的样子
         checkExisting: false , //文件的路径,检查目标文件夹中是否已上载的文件的名称.如果文件名不存在,该脚本将返回1,如果文件名存在或0
         debug: true , //打开swfupload调试模式
         fileObjName: '' , //后台获取文件对象
         fileSizeLimit: '' , //允许文件上传的最大大小.这个值可以是数字或字符串.如果它是一个字符串,它接受一个单位(B,KB,MB,GB)
         //默认单位为KB。您可以将此值设置为0,无限制
         itemTemplate: '' , //选择不同的HTML模板,添加上传文件到上传队列。主要有4种模板:
         //instanceID(uploadify实例id)、fileID(文件id)、fileName(文件名字)、fileSize(文件大小).例如:${fileName}
         method: 'POST' , //POST或GET
         overrideEvents:[ 'onUploadProgress' ], //重写事件,onUploadProgress进度条不更新
         preventCaching: true , //是否缓存,默认为true不缓存
         progressData: 'percentage' , //进度条percentage百分百、speed上传速度更新,默认为percentage
         queueID: false , //默认为false队列id动态生成,可以为DOM元素的id,设置队列样式
         queueSizeLimit:999, //队列大小默认为999,超过将触发onselecterror事件,和uploadLimit类似
         removeCompleted: true , //默认为true上传完成后是否删除上传队列
         removeTimeout:3, //上传完成后,延迟3秒删除队列
         requeueErrors: true , //默认为false,如果为true上传失败后将继续尝试再次上传
         successTimeout:30, //文件上传成功后服务端应返回成功标志,此项设置返回结果的超时时间
         uploadLimit:999, //最大上传文件数量,如果达到或超出此限制将会触发onUploadError事件
         onCancel :  function (file) {
             //移除文件时触发
         },
         onClearQueue: function (queueItemCount){
             //当调用函数cancel方法时触发,queueItemCount参数为被取消上传的文件数量
         },
         onDestroy: function (queueItemCount){
             //当destory方法被调用时触发
         },
         onDialogClose: function (queueData){
             //当文件浏览框关闭时触发,如果将此事件被重写,则当向队列添加文件上传出错时不会弹出错误消息提示
             //queueData对象包含如下属性:
             //filesSelected 文件选择对话框中共选择了多少个文件
             //filesQueued 已经向队列中添加了多少个文件
             //filesReplaced 已经向队列中替换了多少个文件
             //filesCancelled 取消了多少个文件 filesErrored 出错了多少个文件
         },
         onDialogOpen: function (){
             //当文件选择对话框弹出时立即出发,但可能在文件选择对话框被关闭之前并不能全部执行
         },
         onDisable: function (){
             //当disable方法禁用Uploadify上传按钮时被调用时触发
         },
         onEnable: function (){
             //当disable方法启用Uploadify上传按钮时被调用时触发
         },
         onFallback: function (){
             //当Uploadify初始化过程中检测到当前浏览器不支持flash时触发
         },
         onInit: function (){ //首次初始化Uploadify结束时触发
         },
         onQueueComplete: function (queueData){
             //文件上传队列处理完毕后触发,queueData对象包含如下属性:
             //uploadsSuccessful上传成功的文件数量
             //uploadsErrored上传失败的文件数量
         },
         onSelect: function (file){ //选择文件后向队列中添加每个上传任务时都会触发
         },
         onSelectError: function (file, errorCode, errorMsg){
             //选择文件后向队列中添加每个上传任务时如果失败都会触发
             //file文件对象
             //errorCode错误代码如下:
             //QUEUE_LIMIT_EXCEEDED任务数量超出队列限制;
             //FILE_EXCEEDS_SIZE_LIMIT文件大小超出限制;
             //ZERO_BYTE_FILE文件大小为0
             //INVALID_FILETYPE文件类型不符合要求
             //errorMsg错误提示,可通过'this.queueData.errorMsg'定制
         },
         onSWFReady: function (){ //Flash文件载入成功后触发
         },
         onUploadComplete: function (file){ //每个文件上传完毕后无论成功与否都会触发
         },
         onUploadError: function (file, errorCode, errorMsg, errorString){
             //文件上传出错时触发,参数由服务端程序返回
         },
         onUploadProgress: function (file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal){
             //处理上传队列的过程中会多次触发此事件,每当任务状态有更新时都会触发
             //file文件对象
             //bytesUploaded已上传的字节数
             //bytesTotal文件总字节数
             //totalBytesUploaded当前任务队列中全部文件已上传的总字节数
             //totalBytesTotal当前任务队列中全部文件的总字节数
         },
         onUploadStart: function (file){ //当文件即将开始上传时立即触发
         },
         onUploadSuccess: function (file, data, response){
             //当文件上传成功时触发
             //file文件对象
             //data服务端输出返回的信息
             //response有输出时为true,如果无响应为false,如果返回的是false,当超过successTimeout设置的时间后假定为true
         }
     });
});

uploadify方法用法详解:
1.cancel(fileID, suppressEvent) 取消队列中的任务,不管此任务是否已经开始上传
    fileID要取消的文件ID,如果为空则取消队列中第一个任务,如果为'*'则取消所有任务
    suppressEvent是否阻止触发onUploadCancel事件,当清空队列时非常实用
    $('#file_upload').uploadify('cancel')取消第一个
    $('#file_upload').uploadify('cancel','*')清空队列
2.destroy()销毁Uploadify实例并将文件上传按钮恢复到原始状态
    $('#file_upload').uploadify('destroy')销毁Uploadify实例
3.disable(setDisabled)禁用或启用文件浏览按钮
    setDisabled – 设置为true表示禁用,false为启用
    $('#file_upload').uploadify('disable',true)禁用按钮
4.settings(name, value, resetObjects)获取或设置Uploadify实例参数
    name – 属性名称,如果只提供属性名称则表示获取其值
    value – 属性值
    resetObjects – 设置为true时,更新postData对象将清空现有的值。否则,新的值将被添加到其末尾
    $('#file_upload').uploadify('settings','buttonText','BROWSE');
    $('#file_upload').uploadify('settings','buttonText'));
5.stop()停止当前正在上传的任务    
    $('#file_upload').uploadify('stop')停止上传
6.upload(fileID)立即上传指定的文件
    如果fileID为’*'表示上传所有文件,要指定上传多个文件,则将每个文件的fileID作为一个参数
    $('#file_upload').uploadify('upload','*')开始上传所有文
版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值