现在的位置: 首页 > 综合 > 正文

关于 swfupload 上传的一些总结

2013年07月16日 ⁄ 综合 ⁄ 共 2495字 ⁄ 字号 评论关闭

上传是在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中加载

 

代码

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配置

 

代码

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>
【上篇】
【下篇】

抱歉!评论已关闭.