利用SWFUpload实现大附件上传

阅读更多

长久以来,在客户端上传大文件,总是受到客户端环境限制,导致大文件处理上总是不够理想。能处理比较好的上传大附件控件,基本上都需要付费或者是不开源控件,使得我们难以扩展,不方便按照自已需要应用到项目中。当SWFUpload 出现,改变了我们之前遇到的困境。
SWFUpload 简介
SWFUpload 结合了FLASH和JavaScript的功能,以提供一种超越了传统的浏览器中标签提供的文件上传功能。SWFUpload提供的主要功能:
在文件选择对话框中能够进行文件多选
页面无刷新的上传
提供上传进度的事件回调,实时显示上传进度
在文件上传的同时能够发送额外的POST数据
支持单文件、多文件的文件的选择
文件入队数量,文件上传数量和文件大小的限制
对FLASH 9和FLASH 10播放器的支持(V2.2.0版本放弃了对Flash 8的支持)
SWFUpload背后的设计思想和其它基于Flash的上传工具是不同的。它将浏览器的中UI交给开发人员来控制。开发人员能够利用 XHTML,CSS,Javascript来定制符合他们网站风格的UI上传元素。然后使用它提供的一组简单的JS事件来更新上传状态,开发人员能够利用 这些事件来及时更新页面中的上传进度UI。SWFUpload提供API供开发者通过图片、文字、CSS的方式来自定制更灵活的UI显示。
总之, SWFUpload提供更加灵活的自定义,开发人员可控制;SWFUpload借助了FLASH第三方资源上传,成功解决上传大附件过程,占用大量客户端资源,直至当前线程终止问题。
SWFUpload并不是拖放式的上传控件,它需要JavaScript和DOM的知识。
SWFUpload由4部分组成:
初始化和设置(Javascript)
JavaScript 库:SWFUpload.js
SWFUpload.swf(V2.2.0版本放弃了对flash 8的支持)
事件处理(Javascript)
SWFpload必须在页面中初始化,一般可以在window.onload事件中完成此操作。它的构造函数需要一个Object类型的设置对象。 这个设置对象一般是一个直接定义的Object类型变量,直接传递给SWFUpload的构造函数。初始化和设置具体实例如下:
var swfu;
window.onload = function () {
swfu = new SWFUpload({
upload_url : "http://www.bb.com/upload.aspx ",
flash_url : "http:// www.bb.com /swfupload.swf",
button_placeholder_id : "spanSWFUploadButton",
file_size_limit : "20480"
});};

开 发人员还要必须定义一系列JavaScript函数来处理SWFUpload事件回调,当一些不同的重要事件发生的时候,这些函数会被触发。通过处理 SWFUpload的事件,开发人员能够提供关于上传进度、出错信息以及上传完成等的信息反馈。SWFUpload更加详细初始化事件或属性,可以访问官 方:http://www.swfupload.org/

资源:
官方:http://www.swfupload.org/
SWFUpload V2.2.0文档:http://www.v-sky.com/doc/swfupload/Documentation.html
或 http://baike.baidu.com/view/1332553.htm

你可能感兴趣的:(Flash,JavaScript,UI,CSS,浏览器)