本章节将假设您已了解以下内容:
嵌入SWF的几种方式
Flash播放器参数
动态发布方式
静态发布方式
Requires:
KISSY CORE
Flash package
Editors:
龙藏,Taobao,Inc

由于 flash player 自身安全因素限制,浏览本地文件需要通过 用户行为激发 swf 实例,请通过覆盖按钮方式实现本地浏览文件功能。

Properties(Static)

version - String

版本信息

Constructor

Uploader Uploader(id, config)

构造函数

创建一个 Uploader 对象

Parameters:
id <String> 指定的 SWF 的 id。
config <String>|<Array> 指定Flash的一些配置信息。

Uploader 的 config 新增以下可配置属性:

属性 默认值 说明
ds:String null 指定默认上传服务器接收地址。可以由upload() 方法动态指定服务器地址。请保证至少通过一种形式配置。default server 的缩写
dsp:Object null 服务器传参。default server parameters 的缩写。
dsr:Boolean false 服务器端是否会在上传完毕后传回数据。 default server response 的缩写
btn:Boolean false 启用按钮模式。该模式下会激发鼠标事件。
hand:Boolean false 启用手型指针。鼠标显示为手型。

Properties

Methods

查看继承的方法

setFileFilters void setFileFilters(fileFilters)

过滤在对话框中显示的文件。如果省略此参数,则显示所有文件

Parameters:
fileFilters <Array> 这是个复合数组,每项至少包含以下 desc 或 description 和 ext 或 extension 2个属性。可选。指文件上传的指定后缀名组。组中每项是个Object。默认为空,即可以上传任意文件。若约定了过滤后缀名则必需保证每个Object传递具备如下属性的Obejct:{ des:"对过滤规则的描述", ext:"扩展文件名,以类似*.jpg的方式约定"}。

示例


// 仅显示 JPG或JPEG图片 或 文本文件
uploader.setFileFilters([{desc:"JPG,JPEG",ext:"*.jpg;*.jpeg"},
                  {desc:"TEXT",ext:"*.txt"}]);

filter void filter(fileFilters)

setFileFilters 的别名

setAllowMultipleFiles void setAllowMultipleFiles(allowMultipleFiles)

启用多文件选择及上传功能

Parameters:
allowMultipleFiles <Boolean> 指定是否支持多文件选择

multifile void multifile(allowMultipleFiles)

setAllowMultipleFiles 的别名

browse Boolean browse(mulit, fileFilters)

配置浏览文件方式。相当同时使用 setAllowMultipleFiles() 和 setFileFilters()

注意,此函数为配置函数,真正意义上的浏览本地文件需要通过 点击 swf 实现 。

Parameters:
mulit <Boolean> 同 setAllowMultipleFiles()
fileFilters <Array> 同 setFileFilters()

upload Boolean upload(fileID, serverURL,method,serverURLParameter,hasResponse,uploadDataFieldName)

上传指定的单个文件

Parameters:
fileID <String> 文件id
serverURL <String> 上传服务URL
method <String> 指上传提交方式 GET or POST
serverURLParameter <Object> 服务器参数。必需是 key-value 对象。
hasResponse <Boolean> 服务端是否有应答数据
uploadDataFieldName <String> POST操作数据属性。默认是Filedata不需要更改,请务必保持此指不为空或空字符串
Returns:
<Boolean> 当上传功能被锁、用户没有选择文件、用户不允许使用上传功能等障碍,则会不返回 false。

// 仅显示 JPG或JPEG图片 或 文本文件
uploader.upload(fileID,
                "http://127.0.0.1:8080/upload.php",
                "POST",
                {
                  username:"user",
                  password:"1297ew9jd23888s834u3j2u38"
                },
                false);

uploadAll Boolean uploadAll(serverURL,method,serverURLParameter,hasResponse,uploadDataFieldName)

上传所有文件

Parameters:
serverURL <String> 上传服务URL
method <String> 指上传提交方式 GET or POST
serverURLParameter <Object> 服务器参数。必需是 key-value 对象。
hasResponse <Boolean> 服务端是否有应答数据
uploadDataFieldName <String> POST操作数据属性。默认是Filedata不需要更改,请务必保持此指不为空或空字符串
Returns:
<Boolean> 当上传功能被锁、用户没有选择文件、用户不允许使用上传功能等障碍,则会不返回 false。

// 仅显示 JPG或JPEG图片 或 文本文件
uploader.uploadAll("http://127.0.0.1:8080/upload.php",
                "POST",
                {
                  username:"user",
                  password:"1297ew9jd23888s834u3j2u38"
                },
                false);

cancel void cancel(fileID)

取消正在上传中的文件。如果没有指定 fileID 则取消所有正在上传的文件

Parameters:
fileID <String> 文件 id 可选。

getFile Object getFile(fileID)

获取指定文件 id 下的文件信息

Parameters:
fileID <String> 文件 id 。
Returns:
<Object> 返回文件信息对象。见 下表 :
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

removeFile Object removeFile(fileID)

按文件 id 删除指定文件

Parameters:
fileID <String> 文件 id 。
Returns:
<Object> 返回文件信息对象。见 下表 :
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

lock void lock()

锁定上传组件,不再允许浏览器本地文件。

unlock void unlock()

解锁上传组件,允许浏览器本地文件

setBtnMode void setBtnMode(allow)

设置按钮模式。

Parameters:
allow <Boolean> 布尔值为 true 时,则 swf 实例将会 产生鼠标事件。

useHand void useHand(allow)

设置鼠标手势。

Parameters:
allow <Boolean> 布尔值为 true 时,则 鼠标移动到 swf 实例上鼠标则会成为手型。

clear void clear()

清空所有已选择和正在上传文件。

JS Events

查看继承的事件

SWF Event

来自 SWF 定义的事件

查看继承的事件

contentReady

SWF 内容准备就绪。

仅在动态发布方式有该事件。

fileSelect

当单个文件或多个文件时触发。

此事件具有以下属性:

属性 类型 备注
fileList Array 文件数组。每个数组项包含属性见下表
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

browseCancel

浏览文件浏览取消。

uploadLock

成功锁定。

uploadUnlock

成功解除锁定。

uploadClear

成功清空。

uploadStart

开始上传。

此事件具有以下属性:

属性 类型 备注
file Object 当前上传文件对象
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

uploadProgress

数据存储状态。

实例报告其状态或错误条件时调度。一般不会激发。

此事件具有以下属性:

属性 类型 备注
bytesLoaded Number 当前文件已上传字节
bytesTotal Number 当前文件总字节
file Object 当前上传文件对象表
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

uploadComplete

上传完毕且无返回数据时触发。

当配置服务器有数据返回,则此事件不予激发,和 uploadCompleteData 事件互斥。

此事件具有以下属性:

属性 类型 备注
file Object 当前上传文件对象
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

uploadCompleteData

上传完毕且返回数据时触发。

当配置服务器无数据返回,则此事件不予激发,和 uploadComplete 事件互斥。

此事件具有以下属性:

属性 类型 备注
data String 服务器传回数据
file Object 当前上传文件对象
属性 说明
cDate:Date 文件创建日期
mDate:Date 文件修改日期。
name:String 文件名
size:Number 文件大小。单位:字节
type:String 文件类型。
id:String 文件 id。

uploadError

上传组件错误。

此事件具有以下属性:

属性 类型 备注
message String 描述
dump Array 临时数据栈

listComplete

上传文件列表全部上传完成。

mouseOver

鼠标悬停。

mouseDown

鼠标按下。

mouseUp

鼠标弹起。

mouseOut

鼠标移开。

click

鼠标单击。