Flash 批量上传文件两个比较靠谱的组件

经过我的不懈努力,最近终于如愿以偿去做了前端开发,哈哈,事实证明,只要你自己心中一直记得你想要做什么并且不要妥协的话,一般来说最后结果还是会不错的~ 废话少说,进入正题。最近接了一个项目,要批量上传文件,这里得批量上传不只是提供多个输入框那么简单,而是要实现可以在一个文件选择框中选择多个文件。这样一来靠JavaScript 和 HTML 就搞不定了,只能借助Flash来实现了。在网上搜了一下,找到一些方案,一般都是靠 SWF 文件实现文件得批量选择和传输,而与用户得交互还是用 JS 实现的,然后 JS 再和 SWF 通信。不全部使用Flash做得一个原因就是,SWF文件一般比较臃肿,加载需要一定时间,而且 UI 也可能不太一致,如果仅仅用SWF文件做一个功能补充的话,就可以在SWF文件里专心实现功能,在页面上可以隐藏起来。在网上找到两个比较靠谱的组件:
1.
[url=http://swfupload.org/]
[color="#027ac6"]SWFUpload[/color]
[/url]
这个看上去比较成熟了,版本已经升级到了 2.2.0 ,而且网上有不少关于它的使用教程,有兴趣的可以Google一下。
2.
[url=http://developer.yahoo.com/yui/uploader/]
[color="#027ac6"]YUI Uploader[/color]
[/url]
这个组件目前还是 beta 版,我现在就选择了使用这个,没有别的原因,只是因为YUI大家比较熟悉,有问题方便调试。YUI 的好处就是封装得很好,坏处就是有时候封装得太好了,给调试带来难度。
目前我基本用 YUI Uploader 把想要得功能实现了,不过还有一些问题,等研究完全了封装个组件出来然后再写点心得。以后专注前端开发之后blog估计就可以勤快更新一点了~ 加油吧。
BTW, 现在我正在用我全新的 Macbook Pro 写blog,哈哈,感觉很不错!
 
原文地址:
[url=http://www.zhuoqun.net/html/y2009/1330.html]http://www.zhuoqun.net/html/y2009/1330.html[/url]
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/5135.html
<script language="JavaScript" type="text/javascript"> 02.function challs_flash_update(){ //Flash 初始化函数 03.var a={}; 04.//定义变量为Object 类型 05. 06.a.FormName = "Filedata"; 07.//设置Form表单的文本域的Name属性 08. 09.a.url="update.asp"; 10.//设置上传接收文件地址 11. 12.a.parameter="bs=tyi&id=50"; 13.//设置提交参数,以GET形式提交 14. 15.a.typefile=["Images (*.gif,*.png,*.jpg)","*.gif;*.png;*.jpg"]; 16.//设置可以上传文件 数组类型 17.//"Images (*.gif,*.png,*.jpg)"为用户选择要上载的文件时可以看到的描述字符串, 18.//"*.gif;*.png;*.jpg"为文件扩展名列表,其中列出用户选择要上载的文件时可以看到的 Windows 文件格式,以分号相隔 19. 20.a.UpSize=0.5; 21.//可限制传输文件总容量,0或负数为不限制,单位MB 22. 23.a.fileNum=4; 24.//可限制待传文件的数量,0或负数为不限制 25. 26.a.size=100; 27.//上传文件限制大小,单位MB,可以填写小数类型 28. 29.a.FormID=['select','select2']; 30.//设置每次上传时将注册了ID的表单数据以POST形式发送到服务器 31.//需要设置的FORM表单中checkbox,text,textarea,radio,select项目的ID值 32.//参数为数组类型,注意使用此参数必须有 challs_flash_FormData() 函数支持 33. 34.a.CompleteClose=true; 35.//设置为true时,上传完成的条目,将也可以取消删除条目,这样参数 UpSize 将失效, 默认为false 36. 37.return a ; 38.//返回Object 39.} 40. 41.function challs_flash_onStart(a){ //每个文件开始上传时调用的函数,并传入一个Object类型变量,包括刚上传文件的大小,名称,文件类型 42.var name=a.fileName //获取上传文件名 43.var size=a.fileSize //获取上传文件大小,单位字节 44.var type=a.fileType //获取上传文件类型,在 Windows 上,此属性是文件扩展名。 在 Macintosh 上,此属性是由四个字符组成的文件类型 45. 46.} 47. 48.function challs_flash_onComplete(a){ //每个文件上传完成时调用的函数,并传入一个Object类型变量,包括刚上传文件的大小,名称,上传所用时间,文件类型 49.var name=a.fileName //获取上传文件名 50.var size=a.fileSize //获取上传文件大小,单位字节 51.var time=a.updateTime //获取上传所用时间 单位毫秒 52.var type=a.fileType //获取上传文件类型,在 Windows 上,此属性是文件扩展名。 在 Macintosh 上,此属性是由四个字符组成的文件类型 53. 54.} 55. 56.function challs_flash_onCompleteData(a){ //获取服务器反馈信息,参数 a 字符类型,包含了服务器返回的文本信息 57. 58.var Data = a; //获取服务器反馈信息 59. 60.} 61. 62.function challs_flash_onCompleteAll(a){ //上传文件列表全部上传完毕事件,参数 a 数值类型,返回上传失败的数量 63. 64.var Num = a; //获取上传失败数量 65. 66.//文件列表已经全部上传完毕 67. 68.} 69. 70.function challs_flash_FormData(a){ // 使用FormID参数时必要函数 71.try{ 72. 73.return document.getElementById(a).value; 74. 75.}catch(e){ 76. 77.return ''; 78. 79.} 80.} 81.</script> FLASH组件调用代码 view source print? 1.<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="408" height="323" id="update_" align="middle"> 2.<param name="allowFullScreen" value="false" /> 3.<param name="allowScriptAccess" value="always" /> 4.<param name="movie" value="update_.swf" /> 5.<param name="quality" value="high" /> 6.<param name="bgcolor" value="#ffffff" /> 7.<embed src="update_.swf" quality="high" bgcolor="#ffffff" width="408" height="323" name="update_" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 8.</object>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值