SWFUpload详细参数使用说明

SWFUpload的初始化与配置

首先,在页面中引用SWFUpload.js ,如

<script type=”text/javascript” src=”http://www.swfupload.org/swfupload.js”></script>

然后,初始化SWFUpload ,如

var swfu;

window.onload = function () { swfu = new SWFUpload({

upload_url : “http://www.swfupload.org/upload.php”,

flash_url : “http://www.swfupload.org/swfupload_f9.swf”,

file_size_limit : “20480″ }); };

以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:

{ upload_url : “http://www.swfupload.org/upload.php”, 处理上传请求的服务器端脚本

URL file_post_name : “Filedata”, 是POST过去的$_FILES的数组名

post_params : { “post_param_name_1″ : “post_param_value_1″, “post_param_name_2″ : “post_param_value_2″, “post_param_name_n” : “post_param_value_n” },

file_types : “*.jpg;*.gif”, 允许上传的文件类型

file_types_description: “Web Image Files”, 文件类型描述

file_size_limit : “1024″, 上传文件体积上限,单位MB

file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制

file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值

flash_url : “http://www.swfupload.org/swfupload_f9.swf”, Flash控件的URL

flash_width : “1px”, flash_height : “1px”,

flash_color : “#FFFFFF”,

debug : false, 是否显示调试信息

swfupload_loaded_handler : swfupload_loaded_function, 当Flash控件成功加载后触发的事件处理函数

file_dialog_start_handler : file_dialog_start_function, 当文件选取对话框弹出前出发的事件处理函数

file_queued_handler : file_queued_function,

file_queue_error_handler : file_queue_error_function,

file_dialog_complete_handler : file_dialog_complete_function, 当文件选取对话框关闭后触发的事件处理函数

upload_start_handler : upload_start_function, 开始上传文件前触发的事件处理函数

upload_progress_handler : upload_progress_function,

upload_error_handler : upload_error_function,

upload_success_handler : upload_success_function, 文件上传成功后触发的事件处理函数

upload_complete_handler : upload_complete_function,

debug_handler : debug_function, custom_settings : { 自定义设置 custom_setting_1 : “custom_setting_value_1″, custom_setting_2 : “custom_setting_value_2″, custom_setting_n : “custom_setting_value_n”, } }

SWFUpload中的File Object

在SWFUpload的使用过程中,无论在客户端还是服务器端都要和File Object打交道,在一个File Object中包含了以下内容:

{ id : string, // SWFUpload file id,

used for starting or cancelling and upload index : number, // The index of this file for use in getFile(i)

name : string, // The file name. The path is not included.

size : number, // The file size in bytes

type : string, // The file type as reported by the client operating system

creationdate : Date, // The date the file was created

modificationdate : Date, // The date the file was last modified

filestatus : number, // The file’s current status. Use SWFUpload.FILE_STATUS to interpret the value. }

SWFUpload中的方法

+ setPostParams (param_object) - 描述 动态修改SWFUpload初始化设置中的post_params属性,其中所有的值都将被覆 盖。 - 参数 param_object:一个simple JavaScript object,所有的name/value都必须是字符串,例如(this.setPostParams({ “Mari”: name });)。 - 返回 void SWFUpload中的事件

SWFUpload在运行过程中提供了多种事件,这些事件可以让开发者借助句柄来改变页面 UI、改变行为,或者报告错误。所有这些事件都可以在一个SWFUpload实体中被调用,这意味着在这些事件对应的函数中,你可以用 this 关键字来代替引用SWFUpload实体。 + fileDialogComplete (number of files selected) - 触发条件

1. 用户选择好了要上传文件,并关闭对话框;

2. 用户什么也没选,并取消对话框; 如果你希望在用户选择完文件后自动开始上传操作,那么可以将 this.startUpload() 操作放在这里。 - 传入参数 number of files selected:将返回用户所选取的文件个数。 + uploadStart (file object) - 触发条件 该事件在文件上传之前触发,它用于完成一些准备工作,比如传递参数;负责响应该事件的句柄函数 可以有2个返回值(true 或 false)当返回值为false时,整个上传将被取消;当返回值为true时上传过程继续进行。而如果返回值为false,则通常是由一个 uploadError事件所导致的。

注:官方帮助文档的原文中对该事件的描述中有这样一句:“If you return ‘true’ or do not return any value then the upload proceeds.”, 从中可以看到既定的设计是当不返回任何值的时候应该等同于返回true,但是笔者在开发中发现必须明确返回值,否则上传进程将停止响应,不知是否是一个 bug呢? - 传入参数 file object:文件对象 + uploadComplete (file object) - 触发条件 在完成一个上传周期后(在uploadError 或 uploadSuccess之后),此时一个上传操作已经结束,另一个上传操作可以开始了。 - 传入参数 file object:文件对象 + uploadProgress (file object, bytes complete, total bytes) - 触发条件 该事件在整个文件的上传过程中定期性的被Flash控件自动触发,用以帮助开发者实时更新页面 UI来制作上传进度条。 注意:该事件在Linux版本的Flash Player中存在问题,目前还无法解决。

- 传入参数 file object:文件对象 bytes complete:已经上传完毕的文件字节数 total bytes:文件总体积的字节数

常见错误

■ 所上传的文件体积并未超出SWFUpload所设置的数值,但为何无法成功上传?

□ 通常这是由于服务器端的限制所造成的,以Apache+PHP为例,请修改 php.ini中的post_max_size与upload_max_filesize两项设置。

■ 在带有Session验证的网站后台中SWFUpload无法正常工作?

□ 这是因为SWFUpload在上传时相当于重新开辟了一个新的Session进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原 有程序的SessionID,根据它来“找回”其应有的Session。 在SWFUpload的JS配置中的上传中可以这样设置来传递SESSION ID

post_params: {“PHPSESSID” : “<?php echo session_id(); ?>”},

在PHP文件中可以这样接收SESSION ID并找到原来的SESSION: if (isset($_POST["PHPSESSID"])) { session_id($_POST["PHPSESSID"]); } session_start();

■ 关于swfupload上传中文文件名乱码的问题 □ 实际上是由于编码的问题造成的,程序使用的utf-8,文件名传递时也是这种编码,因此造成乱码或文件不能保存,仅是需要修改接收文件,以PHP为 例,upload.php中 $file_name = $_FILES[$upload_name][‘name‘]; $file_name=iconv(“UTF-8″,”GB2312″,$file_name); 这样即可解决。

具体的使用实例,可以参考SWFUpload中的DEMO中的simpledemo和featuresdemo,其中的handlers.js是一些事件函数的定义,值得一提的是事件处理函数中的this指得就是SWFUpload的一个实例

时间: 2024-11-04 21:51:27

SWFUpload详细参数使用说明的相关文章

PHP中$_SERVER的详细参数与说明

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. $_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式). $_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本.例如,"CGI/1.1". $_

smb设置参考手册 --详细参数

#----------------------------------------------------------------------------------## smb设置参考手册 ## ##----------------------------------------------------------------------------------# [global] #-------------------------------------------------------

php课外笔记--$_SERVER的详细参数与说明

php课外笔记--$_SERVER的详细参数与说明 php培训教程中对于$_server的介绍,同时在php中输出$_SERVER相关信息语句: <? echo "<pre>"; var_dump($_SERVER); ?> $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. $_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果

ALV-REUSE_ALV_GRID_DISPLAY_LVC详细参数属性

秤砣原创-ALV-REUSE_ALV_GRID_DISPLAY_LVC详细参数属性 在SAP的HCM开发中经常会用到ALV,刚开始的时候只知道用 REUSE_ALV_GRID_DISPLAY_LVC这个Function就可以把数据显示出来(这里只说grid),但是这个Function里面的参数属性却一直糊里糊涂的,所以到后来报表开发越来越复杂的时候,就发现懂得Function里面参数的用法非常关键,比如说ALV的分类小计要用到IT_SORT这个参数,列宽等ALV布局要用到IS_LAYOUT参数等

$_SERVER的详细参数整理下

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行 脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该 脚本的参数. $_SERVER['argc'] #包含传递给程序的 命令行参数的个数(如果运行在命令行模式). $_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本.例如,“CGI/1.1”. $_SE

深圳戴尔服务器R730XD 详细参数与讲解

深圳戴尔服务器R730XD, DELL服务器R730xd详细参数.戴尔R730xd总代.戴尔R730xd 深圳市诺维尔科技有限公司(http://www.szwlit.com/)成立于2003年,旗下拥有深圳.广州.武汉.杭州.北京.上海等分公司,致力于中国信息产业建设且集计算机领域销售.维修.服务于一体的高新科技公司,拥有雄厚的技术实力.拥有具备丰富网络安全系统配置经验的专业工程师,随时为广大用户不同的需求提供售前咨询和售后技术服务.利用公司的专业技术队伍.系统集成能力和成功的经验以及一流的水

tar解压命令详细参数《转》

tar解压命令详细参数 tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf a

$_SERVER全局数组详细参数

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. $_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式). $_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本.例如,“CGI/1.1”. $_SERVE

JQuery中Ajax详细参数使用案例

JQuery中Ajax详细参数使用案例 参考文档:http://www.jb51.net/shouce/jquery1.82/ 参考文档:http://jquery.cuishifeng.cn/jQuery.Ajax.html 注意事项 本案例演示测试了官方文档中不常用的参数使用方法 前端代码 function theFileUploadGai() {//执行上传 var zhi={ "a1":["你好啊","こんにちは","hello