`
xpz
  • 浏览: 59355 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用Flash上传大文件:swfupload修改以及详细说明

    博客分类:
  • AJAX
阅读更多

Flash Player 8可以支持100MB以下的大文件上传。目前,已经有许多网站利用Flash Player的这个特性来上传大文件了。例如著名的youtubeBox.net国内的G宝盘等等。在互联网上,很早我就找到了这个不错的开源swf上传组件:SWFUpload,但是由于它不太符合项目需求,并且没有帮助材料,我对它进行了一些修改。

注意:SWFUpload组件的版权归原作者所有

修改主要体现在以下几个方面:

  • 由“一选择就上传”改为“先选择,后上传”;
  • 加入了选择成功的回调函数设定
  • 支持单文件上传和多文件上传模式
  • 可以删除待上传队列中的文件
  • 支持按照设定的顺序上传特定类型的文件

以下是针对此组件所写的一个比较详细的中文说明:

使用说明:

将jscripts目录上传至服务器,不要修改其中的文件路径
mmSWFUpload.js是调用swf的核心文件,不要修改其路径和内容
upload.swf是上传主功能所在文件,不要修改其路径和内容
progressbar.png是上传进度条图像文件,可以替换和修改

example.js是定义本例所使用的JavaScript函数的文件,可以修改
example.css定义本例的外观,可以修改
index.htm是本文件,可以修改

进度条、选择文件的列表等所有效果全部由JavaScript实现,具体的实现未知详见sample.js中相关函数

=============================================================
swf提供的供JavaScript调用的函数

mmSWFUpload.callSWF()
此函数打开一个选择文件对话框
当选择成功时,swf会回调select_done_callback参数中定义的JavaScript函数,
当选择不成功(取消)时,swf会回调upload_cancel_callback参数中定义的JavaScript函数
使用示例:<a href="javascript:mmSWFUpload.callSWF();">选择文件</a>

mmSWFUpload.doDelete()
此函数删除待上传文件队列中的最后一个文件
当删除成功时,swf会回调delete_done_callback中定义的JavaScript函数
使用示例:<a href="javascript:mmSWFUpload.doDelete();">删除</a>

mmSWFUpload.doUpload()
此函数告知swf开始上传文件队列
当上传开始时,swf会回调upload_start_callback中定义的函数
当上传正在进行中时,swf会回调upload_progress_callback中定义的函数
当上传出错时,swf会回调upload_error_callback中定义的函数
当上传完成时,swf会回调upload_complete_callback中定义的函数
当队列中的所有文件上传完成时,swf会回调upload_queue_complete_callback中定义的函数
使用示例:<a href="javascript:mmSWFUpload.doUpload();">上传</a>

=============================================================
参数介绍:

debug
是否使用调试模式,在调试模式下会显示mmSWFUpload的设置信息

upload_backend
用于上传的后台程序地址。这个地址是相对于mmSWFUpload.js的

target
swf显示于那个div中?这里指定div的id

link_mode
如果不希望自动显示上传链接,将值设为standalone

link_text
上传链接的文字。如果使用了link_mode,则参数无效。
如果希望用一个图片代替上传链接,则注释此行,设定css_class参数值

css_class
用于修饰上传链接。这是一个CSS类的名称

allowed_filesize
允许的最大文件大小。单位KB

select_mode
值为空:            只能选择一个文件上传,每次选择的新文件会替换旧文件
值为multifile:     每次选择的新文件会加在待上传文件队列的末尾
值为multifileLimit:这种情况下,必须定义select_multifile_limit,
根据select_multifile_limit定义的扩展名顺序选择上传文件,
如果选择的文件顺序与select_multifile_limit定义的顺序不匹配,
则会禁止选择并调用upload_error_callback,错误代码为-60。
当按照定义的顺序选择文件完毕后,会调用select_multifile_done_callback定义的JavaScript函数。

select_multifile_limit
此参数仅当select_mode值为multifileLimit时有效
定义要按顺序上传的文件扩展名,扩展名间用英文半角逗号分隔
例如要上传三个文件,第一个为jpg图片,第二个为doc文档,第三个为zip压缩包,
则定义为“.jpg,.doc,.zip”

allowed_filetypes
允许的文件扩展名

==============================================================
函数介绍:

此处的参数定义的是当一个事件发生时swf调用的JavaScript函数名称

upload_start_callback
上传开始的时候调用,参数介绍见sample.js中的uploadStart定义

upload_progress_callback
上传进行中调用,参数介绍见sample.js中的uploadProgress定义

upload_complete_callback
上传完成调用,参数介绍见sample.js中的uploadComplete定义

upload_error_callback
上传失败调用,参数介绍见sample.js中的uploadError定义

upload_cancel_callback
上传取消调用,参数介绍见sample.js中的uploadCancel定义

upload_queue_complete_callback
所有上传队列完成后调用,参数介绍见sample.js中的uploadQueueComplete定义

select_done_callback
选择一个文件成功后回调,参数介绍见sample.js中的selectedDone定义

select_multifile_done_callback
此函数仅当select_mode值为multifileLimit时有效
当按照select_multifile_limit定义的顺序选择完成后调用
参数介绍见sample.js中的selectMultifileDone定义

delete_done_callback
当在上传列表中删除一个已经选择的等待上传的文件时调用
删除待上传文件使用mmSWFUpload.doDelete()
参数介绍见sample.js中的deleteDone定义

修改后的组件下载:
swfupload.zip

分享到:
评论
4 楼 poincare 2010-07-22  
能给一个在struts2中使用的指导吗?
3 楼 xueshuanglong 2009-04-17  
小弟问下,问什么我的机子没有选择框了??请具体说明解决办法,谢谢
2 楼 jsjzmxx 2008-04-07  
有没有实际的例子,能给一下,谢谢!!
1 楼 herolin 2007-12-14  
小弟有些问题想请教一下
你这个SWFUpload是和http://swfupload.mammon.se/一样的吗?

看来参数很像也知大大您有调整
不过小弟在测试时 有点怪怪的 
目前都是用原始设定 select_mode : 'multifile',
但似乎就是 一次只能选择一个档案 和先前用swfupload.mammon.se 一次多个有点不同
此外我的参数有设定allowed_filetypes_description : "All files...",
但还是会在选档时出现 要上传的文件

小弟的Mail 是hero@edirect168.com 希望大大能解惑

相关推荐

    SwfUpload大文件上传例子

    SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 * 可以同时上传多个文件;  * 类似AJAX的无...

    大名鼎鼎SWFUpload- Flash+JS 上传

     SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点  * 可以...

    SWFUpload PHP大文件上传

    SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 SWFUpload的主要特点 * 可以同时上传多个...

    SWFUpload大文件上传系统

    SWFUpload 是一个小型的、利用 JavaScript/Flash 技术相结合的上传组件。它具有强大的功能在融合了 JavaScript/Flash 技术后,且简易的 HTML/CSS 搭配使您更容易做出属于自己的上传网站。它的强大功能包括有: 可...

    swfupload asp版 asp上传大文件,批里上传

    swfupload asp版 asp上传大文件,批里上传 上传速度很快,带进度条!!

    swfupload控件实现flash文件上传

    swfupload控件实现flash文件上传。详尽的参数介绍等!

    SWFUpload大文件文件上传c#源码(整合flash)

    SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 SWFUpload的主要特点  * 可以同时上传多个...

    java 批量 多文件 上传 SwfUpload插件兼容所有浏览器

    java 批量 多文件 上传 SwfUpload插件兼容所有浏览器,火狐需要安装最新的flash reader,压缩包内有最新的flash reader,实例是上传多张图片,只需稍加修改可以上传任何格式的文件,很好看很好用,特意整理出来分享...

    swfupload(jsp+flash文件上传)

    swfupload(jsp+flash文件上传)

    swfupload flash上传兼容所有浏览器

    swfupload flash上传兼容所有浏览器

    SWFUpload多个超大文件上传

    SWFUpload多个超大文件上传,可传递参数

    多文件上传swfupload

    swfupload 上传 多文件 java 支持多文件上传,只需要在配置文件配置正确即可,后台是,struts2

    SWFUpload 大文件上传 java

    SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的...

    swfupload多文件上传带进度条实例

    swfupload多文件上传带进度条实例,vs2012开发,net4.0框架,可上传多个文件,上传类型、上传大小、上传数量可控,已测试成功!

    swfupload网友修改版

    注意:SWFUpload组件的版权归原作者所有 内含说明

    最新swfupload文件上传

    最新swfupload文件上传,所用技术swfupload:flash+js

    SwfUpload 多文件超大文件上传 java版DEMO

    SwfUpload 上传文件 java版DEMO SwfUpload 官网提供的demo都没有java版的,自己用的官网的页面写的一个。上传成功回传上传信息到页面。优化了官网的demo,增加删除附件下载附件。兼容ff chrome ie ,下载导入到...

    java swfupload 多文件上传js

    SWFUpload是一个客户端文件上传工具,主要特点是: 能够完成多文件。 实现无刷新页面上传。 随时空中上传进度。 可以与其他库进行兼容。 支持Flash9及以上版本。 使用SWFUpload进行上传的页面如下: 使用...

    SWFUpload批量大文件上传

    SWFUpload批量大文件上传。后端PHP代码实现。采用HTTP协议。

    swfupload多文件上传组件

    SWFUpload v2包含了新的高级功能,改善了稳定性,解决了FlashPlayer中的一些bug,并且提供一套有用的插件。新的功能包括: * 兼容了Flash Player 10的安全限制问题 * 在文件上传的同时能够发送额外的POST数据 * ...

Global site tag (gtag.js) - Google Analytics