手机
当前位置:查字典教程网 >网页设计 >Flash教程 >swfupload使用代码说明
swfupload使用代码说明
摘要:差异具体体现在:lash_url:"../swfupload/swfupload_f8.swf"upload_url:"../multiup...

差异具体体现在:

lash_url : "../swfupload/swfupload_f8.swf"

upload_url: "../multiuploaddemo/upload.php",

function uploadSuccess(fileObj, server_data)

如果flash_url用的是f8.swf,那么upload_url要使用相对SWF的路径;如果用的是f9.swf,那么upload_url要使用相对当前程序页面(jsp,asp)的路径,就是这点,耽误了我很长时间. 如果要使用server_data传递返回值,也必须用f9.swf,这点也花了我不少时间. 不管怎样,su都提供的全部源代码,有问题可以自己研究,前提是你能像我一样看的懂,呵呵.

su使用的是flash的上传功能(Flash.net.FileReference;),还用了ActionScript 和 Flash Player 的容器之间实现直接通讯的应用程序编程接口ExternalInterface(详见后文附录),

su超级好用,而且功能强大,可以一次上传多个文件,能在客户端检验文件类型和大小,还能在上传进度中进行控制,能在文件传完后得到后台反馈信息,有较好的debug对话框,比如看看它的高级示例:http://demo.swfupload.org/featuresdemo/index.php,目前唯一不足的可能是对中文文件名支持不好.我研究了半天它的flash as脚本,都没弄明白中文问题怎么改.

它的在线文档:http://demo.swfupload.org/Documentation/

下面具体讲讲su怎么用。

假设有一个前台页面upload.asp,一个后台接收文件的页面save.asp,还有su的核心文件swfupload.js,辅助处理脚本handlers.js。

1, 这两个js,网上的源码里就有,核心js不用改. handlers可以直接用,也可以自己写,看各人本事了.

核心js里,主要是看SWFUpload.prototype.initSettings 初始化设置,很多参数该怎么写,可以参考它.

2, 要在前台页面里调用这两个js,然后初始化swfu对象。

复制代码 代码如下:

<script type="text/javascript">

var swfu;

window.onload = function () {

swfu = new SWFUpload({

// Backend Settings

upload_url: "upload.asp", // Relative to the SWF file 就是这个地方误导了我

file_post_name: "Filedata", // 文件对象的名称,默认Filedata,可以自己改.后台接收就靠它识别

post_params: {"SESSID" : "<%=session.SessionID%>"}, // 附加参数,版本2新功能

// File Upload Settings

file_size_limit : "204", // 单位kb, 限制文件大小

file_types : "*.jpg", //允许的文件类型

file_types_description : "JPG Images", //对话框里的文件类型

file_upload_limit : "0",

// Event Handler Settings - these functions as defined in Handlers.js

// The handlers are not part of SWFUpload but are part of my website and control how

// my website reacts to the SWFUpload events.

// 事件处理,可以自己在handlers.js里面扩充,极大的方便了开发者

// 就是要在handlers里面定义如下的function,当然function里面可以什么也不干,或者用源代码自带的也行

file_queue_error_handler : fileQueueError,

file_dialog_complete_handler : fileDialogComplete,

upload_progress_handler : uploadProgress,

upload_error_handler : uploadError,

upload_success_handler : uploadSuccess,

upload_complete_handler : uploadComplete,

// Flash Settings

flash_url : "js/swfupload_f9.swf", // Relative to this file 注意是f8还是f9

custom_settings : {

upload_target : "divFileProgressContainer"

},

// Debug Settings 是否打开调试信息,默认false

debug: true

});

}

</script>

下面是表单的写法,无需input type=file的写法

复制代码 代码如下:

<form>

<button id="btnBrowse" type="button"><img src="image/page_white_add.png">Select Images <span>(2 MB Max)</span></button>

</form>

3, 后台save.asp.

其实如果你做过普通的文件上传,这里就很简单,不管是jsp,asp,php,基本原理都一样. 前台swf得到文件后,还是用post方式提交给后台,文件对象默认名为Filedata. 比如用asp的无组件文件上传的处理写法如下

复制代码 代码如下:

<>

<%

set upload=new upload_5xsoft

for each formName in upload.objFile

set file=upload.file("Filedata")

file.saveAs Server.mappath(file.FileName)

set file=nothing

next

set upload=nothing

response.write "ok"

%>

java里怎么处理呢? 其实也已有,比如用struts,在actionform里有一个名为Filedata的FileItem对象即可.

php和aspx就不讲了,官方源文件就是php的例子,也有aspx的例子.

4, 返回结果如何显示?

比如上面第三步返回一个结果"ok". 在handlers里写上

复制代码 代码如下:

function uploadSuccess(fileObj, server_data) {

try {

document.write( server_data);

} catch (ex) { this.debug(ex); }

}

就这样简单.只要知道原理,你可以写出更复杂的效果.官方源代码提供了根据上传图片生成缩略图并马上显示的例子.

【swfupload使用代码说明】相关文章:

教你用Flash AS行代码简单画一棵漂亮的树

Flash教程:用AS3代码表现倾斜角与斜率

Flash Web结构之背景层浅析

用AS3代码实现滤镜动画效果

Flash制作旋转小星星动画实例教程(代码实现)

Flash打造漂亮随机画圆弧代码

Flash制作太暴力了搞笑QQ表情动画

制作奔跑的骏马代码

Flash制作卷轴动画实例教程

Flash Actionscript常用的几段代码

精品推荐
分类导航