《swfupload》是一款基于操作系统开发的文件传输软件。它让技术开发者和使用者能以更完善的方式进行文件上传和下载,相比传统模式,操作更加快捷便利。开发者还能借助xhtml、css和javascript随心所欲地定制其在浏览器下的外观。
1. 可实时显示上传进度
2. 具备良好的浏览器兼容性
3. 支持同时上传多个文件
4. 实现类似ajax的无刷新上传
5. 兼容flash 8和flash 9
6. 能与其他java script库(如jquery、prototype等)兼容
1. 为开发者提供丰富的事件接口
2. 可在浏览器端对要上传的文件进行限制
3. 采用flash上传,页面无刷新,且能自定义flash按钮样式
4. 允许一次上传多个文件,设有上传队列,队列中的文件逐个上传,服务器端接收文件与普通表单上传方式相同
swfupload快速入门
新建一个上传页面,可放在swfu目录下(非强制),命名为tutor - 1.html。在head中插入引入swfupload.js的代码。
同时,需要一个swfupload占位符和一个上传按钮。占位符是swfupload载入并初始化后用于被swfupload按钮替换的dom元素。
接着,载入并初始化swfupload.swf。这样,点击“点我选择文件”即可上传文件,操作十分简单。
这里仅介绍几个常用的额外参数,其他细节可查看汉化官方文档。
1. filedata:类似表单上传控件的name属性,默认值为filedata。不建议修改,因为在linux下的flash中修改该值无效。
2. post_params:post值,会连同上传文件一起提交到服务器,可用于验证用户是否允许上传文件等。还能使用swfupload的addpostparam/setpostparams/removepostparam/addfileparam/removefileparam方法修改该值,在上传文件需额外提交表单信息时很实用。
3. requeue_on_error:是否将上传失败的文件重新添加到上传队列顶端,默认值为true。文件上传失败或停止上传触发uploaderror事件时,会将失败文件重新添加到队列顶端,但调用cancelupload方法触发该事件时,文件会被丢弃。
4. file_types:限制上传的文件类型,默认值为*.*。用户上传图片时可设置为”*.jpg;*.jpeg;*.gif;*.png;*.bmp;”。需注意,这只是浏览器端限制,服务端仍需验证文件类型。
5. file_upload_limit:允许同时上传文件的数量,默认值为0(不限制)。当文件队列中的文件数、正在上传的文件数和已上传成功的文件数之和超过该值时,将不允许添加文件。
6. file_queue_limit:允许队列存在的文件数量,默认值为0(不限制)。当文件队列中的文件数超过该值时,不再允许添加文件。
7. button_action:点击swfupload按钮执行的动作,默认值为swfupload.button_action.select_files(多文件上传)
1. 首先引入相应的js文件
2. 实例化swfupload对象,并传入配置参数对象进行各项配置
3. 点击swfupload提供的flash按钮,弹出文件选取窗口选择要上传的文件
4. 文件选取完成后,符合规定的文件会被添加到上传队列
5. 调用startupload方法开始上传队列中的文件
6. 文件上传过程中会触发相应事件,开发者可利用这些事件更新ui、处理错误、发出提示等
所上传的文件体积未超出swfupload设置数值,但无法成功上传
通常是服务器端限制导致,以apache + php为例,需修改php.ini中的post_max_size与upload_max_filesize两项设置。
在带有session验证的网站后台中swfupload无法正常工作
这是因为swfupload上传时会开辟新的session进程,无法与原有程序的session保持一致,需在上传时传递原有程序的sessionid来恢复session。
关于swfupload上传中文文件名乱码的问题
实际是编码问题,程序使用utf - 8编码,文件名传递时也用此编码,导致乱码或文件无法保存,只需修改接收文件的相关设置。


陌生来电要警惕,分享屏幕别随意,未知链接不点击,个人信息不透露,转账汇款多核实,骗局千万要记牢。
有效预防诈骗,请安装国家反诈中心APP!
《swfupload》官方版51KB