SWFUpload 使用Flash 影片(flash movie) 来选择和上传文件。影片里有一个可定制的按钮来激活文件选择对话框。文件选择对话框允许用户选择单一的文件或者多个文件。 选择的的文件类型也是可以被限制的,开发人员可以限定用户只能选择指定的适当的文件,例如*.jgp;*.gif。
一旦选择并点击确定,每个文件都会被验证,并放入队列。当Flash上传文件的时候,由开发人员预定义的Javascript事件会被触发以便来更新页面中的UI显示,并且还能实时提供上传状态和错误信息。
文件的上传是独立于页面和表单的。每个文件单独的上传到处理页面,这就使服务器可以简单轻松地处理文件。flash提供的上传服务使得整个页面不必提交或者刷新。这有点像AJAX程序。页面中的Form表单数据会和FLASH控制的文件上传单独处理。
SWFUpload是一个flash和js相结合而成的文件上传插件。
SWFUpload的特点:
1、用flash进行上传,页面无刷新,且可自定义Flash按钮的样式.
2、可以在浏览器端就对要上传的文件进行限制.
3、允许一次上传多个文件,但会有一个上传队列,队列里文件的上传是逐个进行的,服务器端接收文件时跟普通的表单上传文件是一样的.
4、提供了丰富的事件接口供开发者使用.
SWFUpload的文件上传流程:
1、引入相应的js文件
2、实例化SWFUpload对象,传入一个配置参数对象进行各方面的配置.
3、点击SWFUpload提供的Flash按钮,弹出文件选取窗口选择要上传的文件.
4、文件选取完成后符合规定的文件会被添加到上传的队列里.
5、调用startUpload方法让队列里文件开始上传.
6、文件上传过程中会触发相应的事件,开发者利用这些事件来更新ui、处理错误、发出提示等等.
SWFUpload 包含4部分:
初始化和设置 (JavaScript)
javascript 库: swfupload.js
Flash控件: swfupload.swf 和 swfupload_fp9.swf
事件处理机制 (JavaScript)
许多使用 SWFUpload 的问题都出在设置上。错误的事件处理, Flash/浏览器的Bug,或者服务器配置。
更多信息请参考 SWFUpload 官方网站