加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SWFUpload详解

发布时间:2020-12-15 17:47:24 所属栏目:百科 来源:网络整理
导读:SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合 Flash 与 JavaScript 技术为 WEB 开发者提供了一个具有丰富功能继而超越传统 标签的文件上传模式。 ? 当前版本v2.2.0.1 官网示例:demo.swfupload.org 官方文档:http://demo.swfup

SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合FlashJavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。

?

当前版本v2.2.0.1

官网示例:demo.swfupload.org

官方文档:http://demo.swfupload.org/Documentation/

下载地址:

https://code.google.com/p/swfupload/downloads/list

主要特点

?? 可以同时选择多个文件

?? 类似AJAX的无刷新上传

?? 可以显示上传进度

?? 良好的浏览器兼容性

?? 兼容其他JavaScript库 (例如:jQuery,Prototype等)

?? 支持Flash 8和Flash 9及更高版本

?

?

?

原理简介:


开始配置

准备工作:

从官网下载的压缩包中,拿到以下文件(附件中有整理好的文件)

SWFUpload v2.2.0.1 Coreswfupload.js

SWFUpload v2.2.0.1 CoreFlashswfupload.swf

SWFUpload v2.2.0.1 Samplesdemossimpledemojsfileprogress.js

SWFUpload v2.2.0.1 Samplesdemossimpledemojshandlers.js

SWFUpload v2.2.0.1 Samplesdemossimpledemojsswfupload.queue.js

?

放在指定文件夹中

deploymediajsswfupload

deployjbossweb-tomcat41.sarMETA-INFmime.types

?

swfupload.swf、swfupload.js是核心文件

handlers.js是事件处理

fileprogress.js是文件队列处理

mimetype.properties是mime类型码表

?

从页面初始化到用户选择文件最后上传结束是这样的一个过程:

a页面载入(初始化选择控件)—b用户选择多文件—c形成文件队列—d触发上传(队列中的文件依次上传)—e后台处理—f向前台返回结果

其中d-e-f将根据文件数量重复执行,从a-f过程中所有的动作都由事件来驱动,可以自定义捕获每个事件,所以对于程序员来说非常适合订制自己的上传界面。

?

SWFUpload官方对PHP支持比较好,JSP需要修改和移植,而为了适配公司的Struts 1.x更需要解决如下问题:

1.?????? 对表单验证失败的不进行上传,避免服务器资源浪费。

解决办法:用户批量选择完文件后,先存入队列,点击页面的提交按钮,先验证表单各项都正确无误,然后上传文件,最后进行提交。

2.?????? SWFUpload上传的文件使用file.getContentType()取得的MIME类型总是多媒体。

解决办法:使用MimetypesFileTypeMap用后缀名从资源文件中获取MIME类型。

gds.jap.affix.business. ManageAffixService.createAttachmentUseSWF(String aWorkID,String aSource)

3.?????? SWFUpload使用的编码格式是UTF-8,中文名称在GBK下会成乱码。

解决办法:把上传的文件名作为参数,后台用URLDecoder转码获取正确的文件名。

?

?

JSP页面

?? 引入JS文件

?? 定义初始化参数

?? 声明、创建SWF对象

?? 修改提交方式

Struts Form

?? 声明接收FormFile的对象

?? 声明获得附件最大限制的getter方法

?

Struts Action

?? 从参数来获得上传的标识,进行上传的动作

?? 从参数中获得上传文件名,进行转码

?? 调用manageAffixService.createAttachmentUseSWF方法,解决MIME类型的问题

?

附件上传

gds.jap.affix.business. ManageAffixService.createAttachmentUseSWF(FormFile file,String fileName,String attachmentDesc,String clientIP)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读