注:目前CmsTop系统中使用了新版的文件上传控件(v2),同时兼容文件上传(v1)版本。
CmsTop Uploader 采用AS3编写、FlashDevelop开发,重点不在于此,而是她的接口人性化,好用、易用、体积小、无需使用巨大的swfobject。得力于CmsTop平台的众多用户,经过了众多专业测试,经得起考验,算得上没有bug的程序。
§ 使用 USAGE
<script src="cmstop.uploader.js" type="text/javascript"></script>
<script type="text/javascript">
new Uploader(document.getElementById("buttonid") [, OPTIONS]);
</script>
§ 参数 OPTIONS
/**
* 响应脚本
* @var String
*/
script:'uploader/upload.php?app=apc=aa&a=bb&'
/**
* 是否多选 默认:false
* @var Boolean
*/
,multi:true
/**
* 是否选中后自动上传 默认:false
* @var Boolean
*/
,auto:false
/**
* 是否返回的数据是JSON 默认:false
* @var Boolean
*/
,jsonType:false
/**
* 允许上传文件类型 默认:*.*
* 格式 : *.jpg;*.jpeg;*.gif;*.bmp;*.png|*.flv;*.mov;*.rmvb;*.mp4
* @var String
*/
,fileExt:'*.*'
/**
* 允许上传文件类型 默认:null 格式 : 图片|视频
* @var String
*/
,fileDesc:'所有'
/**
* 需要同步提交的数据, 可通过<Uploader>.setParam(key, val)动态设置
* @var Object
*/
,params:{username:'卡卡龙'}
/**
* 单次最大队列 默认:0 (unlimited)
* @var uint
*/
,queueLengthLimit:0
/**
* 单个文件大小限制 默认:0 (unlimited)
* @var uint
*/
,sizeLimit:0
/**
* 上传文件的字段 默认:Filedata
* @var String
*/
,fieldName:'Filedata'
§ 事件 EVENTS
/**
* 开始选择并填充上传队列
* @param null
*/
,selectStart:function(void){}
/**
* 选中一个文件
* @param Object {ID:String, file:Object}
*/
,selectOne:function(Object){}
/**
* 选择结束
* @param Object {fileCount:uint, allBytesTotal:float}
*/
,selectEnd:function(Object){}
/**
* 文件队列已满
* @param uint queueLengthLimit
*/
,queueFull:function(uint){}
/**
* 队列开始上传
* @param Object {fileCount:uint, allBytesTotal:float}
*/
,queueStart:function(Object){}
/**
* 一个文件开始调用上传
* @param Object {ID:String, file:Object}
*/
,uploadStart:function(Object){}
/**
* 上传进程
* @param Object {ID:String, file:Object, speed:float, percentage:float, bytesLoaded:float, allBytesLoaded:float}
*/
,uploadProgress:function(Object){}
/**
* 一个文件上传完成
* @param JSON|String 第二参数中的data,jsonType为true时,格式化json
* @param Object {ID:String, file:Object, data:String, fileCount:uint}
*/
,uploadComplete:function(JSON|String, Object){}
/**
* 队列上传完成
* @param Object {successCount:uint, errorCount:uint, allBytesLoaded:float}
*/
,queueComplete:function(Object){}
/**
* 队列中文件全部上传成功
* @param null
*/
,queueSuccess:function(void){}
/**
* 退出上传并退出队列
* @param Object {ID:String, file:Object}
*/
,uploadCancel:function(Object){}
/**
* 队列被清空
* @param null
*/
,queueClear:function(void){}
/**
* 发生错误
* @param Object {ID:String, file:Object, type:String, info:String}
*/
,error:function(Object){}
§ 实例方法 INSTANTS METHOD
/**
* 添加POST数据,文件开始上传时会合并到协议中
*/
<Uploader>.setParam(key:String, val:*):void
/**
* 绑定事件
*/
<Uploader>.bind(eventName:String, action:Function):void
/**
* 开始上传
* 触发事件:
* queueStart, uploadStart, uploadProgress,
* uploadComplete, queueComplete, queueSuccess, error
*/
<Uploader>.upload(ID:String = null):void
/**
* 退出单个上传 触发事件: uploadCancel
*/
<Uploader>.cancel(ID:String):void
/**
* 清空队列 触发事件: queueClear, uploadCancel
*/
<Uploader>.clear(void):void
§ 运行时配置
/**
* 开启调试模式
*/
Uploader.setDebug()