一个可断点续传的上传客户端使用(HTML5跟Flash)

什么是QUpload?

QUpload是一个使用PHP + HTML5、Flash的断点续传解决方案。可以说他不仅仅是一个软件而是一套软件。

QUpload有什么特点? 服务端纯php实现无需安装其他的扩展(PHP_VERSION >= 5.3.0)。 文件上传大小不受 upload_max_filesize 和 post_max_size 这两个配置的限制(因为使用了分块上传技术)。不过需要注意的是web容器比如IIS跟Nginx的最大支持请求主体的设置:确认 applicationhost.config 或 web.config 文件中的 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 设置。 兼容性好(支持IE6+ Chrome Firefox ...) 反正HTML5跟Flash至少有一项么。 支持断点续传。 自带过期内容清除机制。 上传大文件服务端占用内存小。 客户端如何使用? 引入脚本

//jQuery.js(1.9以上2.0以下的版本都可以吧) 和 QUpload.js <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <script src="qupload.js"></script> 实例化QUpload

var u = new QUpload({ tokenUrl: '/QUpload/token', uploadUrl: '/QUpload/upload', swfPath: 'qupload.swf', maxFileSize: 134217728, allowedExt: 'gif|jpg|png|zip|rar' }); 配置项说明

tokenUrl: 获取令牌的地址 uploadUrl: 上传文件地址 swfPath: Flash文件地址 maxFileSize: 文件上传的最大大小 allowedExt: 允许上传的文件扩展名称 以|为间隔 接口说明

/** * 注入某个元素 点击该元素即可选择上传文件(就是在此元素上面覆盖了一透明层) * @param ElementNode elem * @return void */ QUpload::inject(elem:ElementNode):void /** * 开始上传文件 * @return void */ QUpload::upload():void /** * 重置上传环境 */ QUplpad::reset():void /** * 断开文件上传 * @return void */ QUpload::abort():void /** * 添加事件监听 * @param String eventName * @param Function listener * @return void */ QUpload::addEventListener(eventName:String, listener:Function):void /** * 移除事件监听 * @param String eventName * @param Function listener * @return void */ QUpload::removeEventListener(eventName:String, listener:Function):void 客户端事件

/** * 上传进度事件 * @param Number loadedByte 已加载的字节数 * @param Number totalByte 剩余未加载的字节数 */ QUpload.PROGRESS /** * 上传错误事件 * @param String message 错误信息 * @param Number code 错误代码 */ QUpload.ERROR /** * 上传完成事件 * @param String token 上传文件令牌 根据此令牌可以去服务端获得指定的文件 */ QUpload.COMPLETE /** * 文件选择完成事件 * @param Object file 选择的文件信息 包含name(文件名称) size(文件大小) time(文件修改时间) */ QUpload.SELECT 客户端错误

声明:错误分两种错误一种是本地错误,一般是网络错误,本地错误一般是文件不符合需求会重置上传,错误号以1开头,网络错误是2开头,会中断上传。其他错误以3开头代表逻辑错误,比如未选文件就开始上传。

101: '文件类型不符合需求, 所需: %s, 实际: %s。' 102: '文件大小超过限制,最大大小: %s,实际大小: %s。' 201: '服务器出错,上传失败,请重试。' 301: '请先选择文件再进行上传。'

目前造成网络错误的原因比较多,为了不给使用者造成困扰,所以统一为201。(PS: 特别是Flash上传的时候请注意如果swf文件地址跟上传地址不在一个地方的时候请注意你的crossdomain.xml是否已经存在并且设置正确。否则会触发安全错误。)

服务端如何使用?

尚待补上 可参加DEMO。

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。