关于 swfupload 上传的一些总结

上传是在WEB程序中比较常见的类型,作为WEB上传,由于PHP.ini配置限制,上传大小都不宜过大,一般在10M以内,在客户体验上就不适合单用HTTP方式上传了,在10M以上文件上传由于需要一定的等待时间,所以为了直观的体现上传文件大小 进度 所需时间等信息,则需要借助其他方法

在大文件上传上面,例如G级别的(300百兆以上)等文件,上传一般都是借助C 或者 其他语言写扩展或者插件完成,但这个预计成本会比价大,所在在200M以下的文件,采取FLASH+HTTP是比较合算的一种方式,在FLASH上传上,swfupload表现综合来说,相对优秀,下面来介绍下其配置情况:

首先其代码现在可以去 http://code.google.com/p/swfupload/  其官网为 http://www.swfupload.org/

(1) 下载完成后,我们只需要提取 swfupload.js(MINI压缩版本),fileprogress.js(负责进度),swfupload.queue.js(排队),handlers.js(负责处理协调上传)这个几个JS提取出来,然后 将 swf文件复制出来,以及相关的CSS images信息

(2)

在HTML中加载

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
1 < link rel ="stylesheet" href ="swfup/css/swfupload.css" />
2   < script type ="text/javascript" src ="swfup/js/swfupload.js" ></ script >
3   < script type ="text/javascript" src ="swfup/js/swfupload.queue.js" ></ script >
4   < script type ="text/javascript" src ="swfup/js/fileprogress.js" ></ script >
5 < script type ="text/javascript" src ="swfup/js/handlers.js" ></ script >

(3) 加载JS配置

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
1 < script type = " text/javascript " >
2 var swfu;
3 myjquery( function (){
4 var settings = {
5 flash_url : " swfup/swf/swfupload.swf " , // flash8地址
6 flash9_url : " swfup/swf/swfupload_fp9.swf " , // flash9地址
7
8 allowed_filetypes_description : " 允许上传格式... " , // 文件描述
9 upload_url: " upload.php " , // 上传文件(这个文件自己写,即普通的HTTP上传)
10 post_params: { " UID " : " $winduid " }, // 需要传送参数
11 file_size_limit : " 100 MB " , // 单文件上传大小
12 file_types : " *.txt,*.jpg " , // 上传允许格式
13 file_queue_limit : " 2 " , // 一次性上传队列个数
14 file_upload_limit : " 0 " , // 允许上传个数
15 /* * 以下为CSS控制 */ /
16 custom_settings : {
17 progressTarget : " fsUploadProgress " ,
18 cancelButtonId : " btnCancel "
19 },
20 debug: true ,
21 button_width: " 95 " ,
22 button_height: " 26 " ,
23 button_text_style: ' .button {font-family: Helvetica, Arial, sans-serif; font-size: 12px; border:0px; color:#FFFFFF} ' ,
24 button_image_url: " swfup/images/bg.jpg " ,
25 button_placeholder_id: " spanButtonPlaceHolder " ,
26 button_text: ' <span class="button">+选择上传文件</span> ' ,
27 button_text_top_padding: 0 ,
28 button_text_left_padding: 5 ,
29 button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
30 button_cursor: SWFUpload.CURSOR.HAND,
31 swfupload_preload_handler : preLoad,
32 swfupload_load_failed_handler : loadFailed,
33 file_queued_handler : fileQueued,
34 file_queue_error_handler : fileQueueError,
35 upload_start_handler : uploadStart,
36 upload_progress_handler : uploadProgress,
37 upload_error_handler : uploadError,
38 upload_success_handler : uploadSuccess
39 };
40 swfu = new SWFUpload(settings);
41 });

(3)对于需要自己控制一些功能的话,可以对handlers.js进行修改

(4)重要的一点就是 如果upload.php需要存放在文件服务器上,上传则在需要的服务器上,假如2个服务器域名不一致,则需要在flash的根目录下加flash跨域解决文件,文件名为:crossdomain.xml

内容如下

 
  
1 <? xml version="1.0" ?>
2 < cross-domain-policy >
3 < allow-access-from domain ="*.允许域名" />
4 < allow-access-from domain ="*.允许域名" />
5 </ cross-domain-policy >

转载于:https://www.cnblogs.com/xyxiong/archive/2011/01/19/1939128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值