Jquery Ajax文件上传插件Uploadify详解(上)

     上传文件的时候打算用Ajax方法,这样用户体验好一些,找来找去还是Uploadify好些,可惜相关的帮助文档不好找,园里有一篇可惜是2年前2.1版本的,和现在最新的3.2版差别很大,很多Option都已经取消了。唯一可用的就是官网(http://www.uploadify.com/),里面的资料还是很详细的,所以打算把它整理成中文以便于以后查阅(Flash版Uploadify)。

  • Options(选项、参数):
Option Input Type Default Value Required Info
auto Boolean true   选择文件后是否自动上传,如果为false则需额外再添加一个按钮之类的去调用uploadify()函数
buttonClass String Empty String √ 设置Uploadify按钮CSS样式
buttonCursor String 'hand'   设置鼠标放在Uploadify按钮上的样式,可能的值是’hand’ 、‘arrow’
buttonImage String null   设置按钮背景图片的地址,不过推荐写在CSS中
buttonText String 'SELECT FILES'   设置按钮中的文字,支持中文
checkExisting String false   设置一个路径在服务器端检测文件是否已存在,返回1和0分别代表已存在、不存在
debug Boolean false   转换到调试模式
fileObjName String 'Filedata'   设置上传的文件在服务器端的参数,比如在C#端就可以用Request.Files["Filedata"]获取上传的文件
fileSizeLimit Number/String     上传文件大小限制,默认以KB为单位,也可传入字符串参数自定义其他单位(B/MB/GB),设置为0代表不限制
fileTypeDesc String 'All Files'   浏览文件对话框中文件类型的描述
fileTypeExts String '*.*'   限制上传文件的拓展名(i.e. ‘*.jpg; *.png; *.gif’)
formData JSON Object Empty Object   如字面意思,文件上传同时向后台传递的表单数据,Json格式传递
height Number 30   按钮高度(PX)
itemTemplate String false   可以设置文件上传队列的HTML模版,四个模版标签:1. instanceID:当前Uploadify实例的ID;2. fileID:队列中文件的ID;3. fileName:文件名4. fileSize:文件大小。这样插入模版标签:${fileName}
method String 'post'   提交文件上传表单的方式:”get”,”post”
multi Boolean True   选择文件是一次是否能选择多个
overrideEvents JSON Array Empty Array   你想要绕过默认事件的脚本名的数组,就是想要覆盖掉的页面事件。
preventCaching Boolean true   防止SWF文件缓存,默认会为SWF文件请求加上一个随机数参数
progressData String 'percentage'   显示上传进度的方式,百分比/速度:‘percentage’ /‘speed’
queueID String false   可以手工设置文件上传队列的ID,默认会自动生成一个(手工设置ID后就可以自定义CSS样式了)
queueSizeLimit Number 999   同一时间,上传文件队列的最大数量(不是可上传文件总数)。如果队列中的文件数超过此限制,onSelectError的事件被触发。
removeCompleted Boolean true   完成的队列是保持显示还是移除(DOM)
removeTimeout Number 3   完成的队列移除(DOM)的时延秒数
requeueErrors Boolean false   如果设置为true,则返回错误,并重新排队,尝试再次上传文件
successTimeout Number 30   文件完成上传后等待服务器返回响应的时间,如果超过这个时间将会自行断言上传成功。
swf String 'uploadify.swf' √ uploadify.swf文件的路径
uploader String 'uploadify.php' √ 服务器端上传文件的脚本路径
uploadLimit Number 999   允许上传文件的总数。如果超过这个数量onUploadError事件将会被触发
width Number 120   按钮宽度(PX)

 

  •  Events事件(函数)
Event Arguments Overridable Info
onCancel file   取消上传时触发,参数为当前文件对象
onClearQueue queueItemCount   当’cancel’方法以’*’作为参数时触发,如$('#file_upload').uploadify('cancel','*')
onDestroy     由’destroy’方法触发
onDialogClose queueData:包含以下队列信息:1. filesSelected浏览文件对话框中选择文件的数量 2. filesQueued:添加到队列中的文件数(没有返回错误的)3.filesReplaced:队列中的替换的文件数 4. filesCancelled:添加到队列中取消文件的数量(不是替换) 5. filesErrored:返回错误的文件数 N/A 当浏览文件窗口关闭时被触发。如果该事件被添加在overrideEvents选项中,那么若添加文件时发生错误后,不会提示默认错误信息
onDialogOpen     浏览文件窗口打开时触发
onDisable     由’disable’方法(参数为true时)触发
onEnable     由’disable’方法(参数为false时)触发
onFallback     在初始化过程中触发,如果未检测到浏览器中兼容版本的Flash player
onInit     Uploadify第一次被调用时初始化最后被调用
onQueueComplete queueData:包含以下队列信息:uploadsSuccessful、uploadsErrored分别是上传成功/失败的文件数量   队列中文件传输完成时被调用
onSelect file:被选择的文件对象 N/A 当每个文件被选择并添加到队列中时触发
onSelectError   N/A 当每个文件被选择时返回错误后触发
onSWFReady     Flash对象(SWF按钮)加载完成时触发
onUploadComplete file:上传的文件对象或返回一个错误。 N/A 每个文件上传完成时,无论是成功或返回一个错误触发一次。
onUploadError file:已经上传的文件对象
errorCode:返回的错误码
errorMsg:返回的错误信息
errorString:可读(面向用户)的错误信息,包含作物详细信息
  文件上传后服务器端返回错误时触发
onUploadProgress file:上传文件对象
bytesUploaded:已上传的字节数
bytesTotal:当前文件的总字节数
totalBytesUploaded:在当前上传操作上传的字节总数(所有文件)
totalBytesTotal:总要上传的字节数(所有文件)
  文件上传进度信息每次更新时触发(可用于自定义文件上传进度显示)
onUploadStart file:即将上传的文件对象   上传文件前触发
onUploadSuccess file:已上传文件的对象
Data:服务器端返回的数据
Response:服务器端返回的响应,成功则为true,无响应则为false
N/A 每个文件上传后服务器返回成功时触发

 

 

  • Methods内置方法
Method Arguments Info
cancel

fileID:可以输入任意数量文件的ID,如果以“*”作为第一个参数,则队列中的所有文件将被取消。如果没有任何文件ID作为参数,则队列中的第一个文件将被取消。

suppressEvent:如果设置为true,onUploadCancel事件将被阻止。清除队列时,这是非常有用的。

上传文件时取消队列中的一个文件
destroy   清空Uploadify中所有文件输入,并返回到初始状态
disable setDisabled:设置true/false来禁用/启用按钮  
settings

Name:设置的名称。仅设置这个参数将返回值。

Value:设置的值 resetObjects:设置为true时,更新的postData对象删除现有的值。否则,新的值将被添加到现有的。

获取或设置某个Uploadify实例的设置选项(Swf文件设置无法改变)
stop   停止当前所有上传和重新排队的过程
upload fileID:可传入多个欲上传文件的ID作为参数,如果仅以“*”作为参数,则代表所有文件 上传特定文件或队列中所有文件

 

     好了,Uploadify客户端这边的配置基本就这么多了,补充一点Uploadify 3.2的版本里取消了原先的‘cancelImg’配置选项,而是把它放到了CSS中,现在uploadify-cancel.png这张图片的路径(相对uploadify.css)默认为“../img/uploadify-cancel.png”。对于本文中出现的错误,欢迎不吝指正。在下一遍随笔里会介绍服务器端的设置,并做一些demo,现在时间也不早了。

posted @ 2012-09-10 01:36  Hans Huang  Views(3358)  Comments(1)    收藏  举报