SWFUpload多文件上傳手冊(cè)_第1頁(yè)
SWFUpload多文件上傳手冊(cè)_第2頁(yè)
SWFUpload多文件上傳手冊(cè)_第3頁(yè)
SWFUpload多文件上傳手冊(cè)_第4頁(yè)
SWFUpload多文件上傳手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SWFUpload多文件上傳手冊(cè)

SWFUpload提供的要緊功能:

?在文件選擇對(duì)話(huà)框中能夠進(jìn)行文件多選

?頁(yè)面無(wú)刷新的上傳

?提供上傳進(jìn)度的事件回調(diào),實(shí)時(shí)顯示上傳進(jìn)度

?良好的瀏覽器兼容性

?使用了命名空間以兼容其它JS的庫(kù)仕匕如jQuery,Prototype,等等)

?

?對(duì)FLASH9與FLASH10播放器的支持(V2.2.0版本放棄了對(duì)Flash8的

支持)

SWFUpload背后的設(shè)計(jì)思想與其它基于Flash的上傳工具是不一致的。它將瀏覽

器的中UI交給開(kāi)發(fā)人員來(lái)操縱。開(kāi)發(fā)人員能夠利用XHTML,CSS,Javascript來(lái)定

制符合他們網(wǎng)站風(fēng)格的UI上傳元素。然后使用它提供的一組簡(jiǎn)單的JS事件來(lái)更

新上傳狀態(tài),開(kāi)發(fā)人員能夠利用這些事件來(lái)及時(shí)更新頁(yè)面中的上傳進(jìn)度UI。

不幸的是FlashPlayer10更嚴(yán)格的安全機(jī)制迫使我們不得不將一個(gè)Flash

Button放入Flash影片中。SWFUpload提供API供開(kāi)發(fā)者通過(guò)圖片、文字、CSS

的方式來(lái)自定制更靈活的UI顯示。

SWFUploadv2

SWFUploadv2包含了新的高級(jí)功能,改善了穩(wěn)固性,解決了FlashPlayer中的

一些bug,同時(shí)提供一套有用的插件。新的功能包含:

?兼容了FlashPlayer10的安全限制問(wèn)題

?在文件上傳的同時(shí)能夠發(fā)送額外的POST數(shù)據(jù)

?針對(duì)每一個(gè)文件上傳發(fā)送E0ST/GET數(shù)據(jù)

?更直觀的事件回調(diào)

?動(dòng)態(tài)修改實(shí)例設(shè)置

?接收服務(wù)端返回的數(shù)據(jù)

?非取消形式的停止文件上傳

?自定義上傳的順序

?支持單文件、多文件的文件的選擇

?文件入隊(duì)數(shù)量,文件上傳數(shù)量與文件大小的限制

?更合理地處理0字節(jié)的文件

?針對(duì)每個(gè)文件在上傳前都提供一個(gè)最后確認(rèn)的時(shí)間回調(diào)

?解決了vl.0.2版本中未描述到的關(guān)于Flash的bug

?解決的vl.0.2中的bug:

o在FireFox中,假如窗口的滾動(dòng)條沒(méi)有回滾到頂部,那么Flash

無(wú)法加載

oRace-conditionswhenfilesarecached

?兼容ASP.NetForms

SWFUploadv2連續(xù)了SWFUpload的設(shè)計(jì)目標(biāo),將UI分離以交給開(kāi)發(fā)人員操縱與

后續(xù)擴(kuò)展

概述

傳統(tǒng)的HTML上傳

標(biāo)準(zhǔn)的HTML上傳表單為用戶(hù)提供一個(gè)文本框與按鈕來(lái)選擇文件,選中的文件是

隨著form表單提交的。整個(gè)文件上傳完成之后,下一個(gè)頁(yè)面才會(huì)顯示,同時(shí)不

能對(duì)選擇的文件做預(yù)設(shè)的文件檢驗(yàn),比如文件大小限制,文件類(lèi)型限制。當(dāng)文件

上傳時(shí),用戶(hù)獲得的可用的反饋信息很少。

傳統(tǒng)的HTML上傳模式十分簡(jiǎn)單,線(xiàn)性的,幾乎所有瀏覽器都支持它。

SWFUpload

SWFUpload使用一個(gè)Flash影片來(lái)操縱文件的選擇與上傳。此FLASH中包含一個(gè)

用戶(hù)自定制UI的按鈕,點(diǎn)擊該按鈕能夠激活Flash本身的高級(jí)文件上傳對(duì)話(huà)框,

它能夠根據(jù)用戶(hù)的設(shè)置來(lái)進(jìn)行單文件或者者是多文件的上傳,選擇的的文件類(lèi)

型也是能夠被限制的,因此用戶(hù)只能選擇指定的適當(dāng)?shù)奈募热?.jgp;*.gif。

提醒:FlashPlayer10的安全機(jī)制更嚴(yán)格,類(lèi)似打開(kāi)文件上傳的對(duì)話(huà)框的操作,

一定需要用戶(hù)交互才觸發(fā),假如用腳本觸發(fā),會(huì)報(bào)#2176的運(yùn)行時(shí)錯(cuò)誤。因此

V2.2.0版本在SWF中添加了一個(gè)可定制的Button讓用戶(hù)交互來(lái)打開(kāi)文件對(duì)話(huà)

框。

當(dāng)選定文件以后,每個(gè)文件都會(huì)被驗(yàn)證與處理。當(dāng)Flash上傳文件的時(shí)候,由開(kāi)

發(fā)人員預(yù)定義的Javascript事件會(huì)被定時(shí)觸發(fā)以便來(lái)更新頁(yè)面中的UI,同時(shí)還

提供上傳狀態(tài)與錯(cuò)誤信息。

選定的文件的上傳與它所在頁(yè)面、表單是獨(dú)立的。每個(gè)文件都是單獨(dú)上傳的,這

就保證了服務(wù)端腳本能夠在一個(gè)時(shí)間點(diǎn)更容易地處理單個(gè)文件。盡管Flash提供

了上傳服務(wù),但是頁(yè)面并不可能提交或者者重新載入。相比于標(biāo)準(zhǔn)的HTMLForm,

SWFUpload的使用方式更像是AJAX程序,頁(yè)面中的Form會(huì)與FLASH操縱的文件

上傳單獨(dú)處理。

入門(mén)

SWFUpload并不是拖放式的上傳控件,它需要JavaScript與D0M的知識(shí)。一些

可用的演示展示了它能夠完成什么情況與它是如何完成這些常見(jiàn)的任務(wù)。

SWFUpload由4部分構(gòu)成:

1.初始化與設(shè)置(Javascript)

2.JavaScript庫(kù):SWFUpload.js

3.SWFUpload.swf(V2.2.0版本放棄了對(duì)flash8的支持)

4.事件處理(Javascript)

使用SWFUpload遇到的多數(shù)問(wèn)題是由不正確地設(shè)置或者者定義了糟糕的處理事

件引起的。

初始化與設(shè)置

SWFpload務(wù)必在頁(yè)面中初始化,通常能夠在window,onload事件中完成此操作。

它的構(gòu)造函數(shù)需要一個(gè)Object類(lèi)型的設(shè)置對(duì)象。這個(gè)設(shè)置對(duì)象通常是一個(gè)直接

定義的Object類(lèi)型變量,直接傳遞給SWFUpload的構(gòu)造函數(shù)。

初始化的SWFUpload對(duì)象的弓用需要保留下來(lái),由于當(dāng)顯示文件選擇對(duì)話(huà)框與啟

動(dòng)文件上傳的時(shí)候需要這個(gè)實(shí)例的引用。

比如:用直接定義的Object類(lèi)型變量設(shè)置初始化SWFUpload對(duì)象

varswfu;

window,onload=function0{

swfu=newSWFUpload({

file_size_limit:"20480〃});

};

比如:用存儲(chǔ)在變量中的設(shè)置對(duì)象初始化SWFUpload對(duì)象

varswfu;

JavaScript庫(kù)

該JavaScript庫(kù)文件(swfupload.js)應(yīng)該包含在需要上傳功能的頁(yè)面中。

當(dāng)SWFUpload創(chuàng)建完成并能訪(fǎng)問(wèn)它的一系列功能時(shí),開(kāi)發(fā)人員能夠來(lái)操縱此實(shí)

例。

比如:添加SWFUpload.js到頁(yè)面中

比如:根據(jù)需要的設(shè)置來(lái)初始化SWFUpload

button_placeholder_id:"spanSWFUploadButton"});

Flash操縱元素

SWFUploadJavaScript庫(kù)動(dòng)態(tài)加載Flash操縱元素(swfupload.swf)。

Flash操縱元素的文件地址在初始化的時(shí)候就應(yīng)該在SWFUpload設(shè)置對(duì)象中定

義。

Flash操縱元素是一個(gè)很小的的Flash影片,它提供了文件瀏覽、檢驗(yàn)與上傳功

能。它在頁(yè)面中展現(xiàn)給用戶(hù)的是一個(gè)UI可自定制的按鈕,但該Flash會(huì)在需要

時(shí)候通過(guò)與Javascript通信來(lái)通知瀏覽器處理更新。

事件處理

開(kāi)發(fā)人員務(wù)必定義一系列JavaScript函數(shù)來(lái)處理SWFUpload事件回調(diào),當(dāng)一些

不一致的重要事件發(fā)生的時(shí)候,這些函數(shù)會(huì)被觸發(fā)。

通過(guò)處理SWFUpload的事件,開(kāi)發(fā)人員能夠提供關(guān)于上傳進(jìn)度、出錯(cuò)信息與上傳

完成等的信息反饋。

比如:swfupload的處理事件與初始化

//uploadstart處理事件。該函數(shù)變量在設(shè)置對(duì)象中指定給了

up1oad_start_hand1er屬性。

varuploadStartEventHandler=function(file){varcon^inue_with_up1oad;

if(file,name二二二"theskyisblue"){continue_with_upload=true;}else

{continue_with_up1oad=false;}returncontinue_with_upload;};

//uploadSuccess處理事件。該函數(shù)變量在設(shè)置對(duì)象中指定給了

upload_success_handler屬性。varuploadSuccessEventllandler=function

(file,server_data){alert("Thefile*+file,name+〃hasbeendelivered

totheserver.,z);alert(,zTheserverrespondedwith〃+server_data);};

SWFUploadJavaScript對(duì)象

構(gòu)造函數(shù)

SWFUpload(settingsobject)

返回:一個(gè)SWFUpload實(shí)例

varswfupload_instance=newSWFUpload(settings_object);

全局變量與常量

SWFUpload定義了一些全局變量與常量,這對(duì)SWFUpload的高級(jí)應(yīng)用程序與處理

錯(cuò)誤都是很有用的,它們都是只讀的。

SWFUpload.instances

SWFUpload.instances是一個(gè)存儲(chǔ)了頁(yè)面中所有SWFUpload實(shí)例引用的數(shù)組。

Flash播放器依靠這個(gè)數(shù)組來(lái)調(diào)用正確的處理事件。該數(shù)組是由movieName屬性

來(lái)索引的關(guān)聯(lián)數(shù)組。比如:SHFUpload.instances.SWFUpload_0訪(fǎng)問(wèn)的是第一個(gè)

實(shí)例引用。

注意:SWFUpload.instances不是一個(gè)真正的JavaScript數(shù)組,實(shí)際上它是一

個(gè)對(duì)象(關(guān)聯(lián)數(shù)組)。

SWFUpload.movieCount

SWFUpoad.movieCount是一個(gè)全局變量,用于記錄頁(yè)面中的SWFUpload實(shí)例個(gè)數(shù),

同時(shí)確保給每一個(gè)Flash影片分配一個(gè)惟一的movieNameo

SWFUpload.QUEUE_ERROR

SWFUpload.QUEUE_ERROR是一個(gè)包含了QueueError錯(cuò)誤碼的JS對(duì)象,通常用

它來(lái)查看fileQueueError事件的中發(fā)送的錯(cuò)誤碼,以確定fileQueueError的具

體類(lèi)型。

SWFUpload.QUEUE_ERROR={QUEUE_L1M1T_EXCEEDED:-100,

FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:

-130};

SWFUpload.UPL0AD_ERR0R

SWFUpload.UPLOAD_ERROR是一個(gè)包含了UploadError錯(cuò)誤碼的JS對(duì)象,通常

用它來(lái)查看uploadError事件的中發(fā)送的錯(cuò)誤碼,以確定uploadError的具體類(lèi)

型。

SWFUpload.FILE_STATUS

SWFUpload.FILE_STATUS是一個(gè)包含F(xiàn)ileStatus狀態(tài)碼的JS對(duì)象。它能夠用

來(lái)檢測(cè)File對(duì)或中的filestatus屬性,以確定文件的狀態(tài)。

SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,

SUCCESS:-4,CANCELLED:-5};

默認(rèn)處理事件

SWFUpload庫(kù)提供了一系列默認(rèn)的處理事件。當(dāng)開(kāi)發(fā)人員沒(méi)有自定義處理事件

時(shí),SWFUpload庫(kù)將調(diào)用這些默認(rèn)的處理事件。因此當(dāng)自定義事件時(shí),不要把這

些默認(rèn)的處理事件覆迤了。自定義事件是需要在settings對(duì)象中被單獨(dú)定義的。

SWFUpload.BUTT0N_ACTI0N

SWFUpload.BUTT0N_ACTI0N是一個(gè)包含button的動(dòng)作預(yù)設(shè)的JS對(duì)象。

SWFUpload.BUTT0N_ACTI0N={SELECT_FILE:-100,SELECT_FILES:-110,

STARTJJPL0AD:-120}

能夠使用button_action屬性來(lái)設(shè)置Flash本身的文件上傳對(duì)話(huà)框的行為。默認(rèn)

為SWFUpload.BUTT0N_ACTI0N.SELECT_FILES,點(diǎn)擊按鈕將會(huì)打開(kāi)多文件上傳的

對(duì)話(huà)框。假如設(shè)置為SWFUpload.BUTT0N_ACTI0N.SELECT_FILE,則為單文件上傳。

假如設(shè)置為SWFUpload.BUTT0N_ACTI0N.START_UPL0AD,則啟動(dòng)文件上傳

SWFUpload.CURSOR

SWFUpload.CURSOR是一個(gè)包含button的光標(biāo)狀態(tài)碼的JS對(duì)象。

SWFUpload.CURSOR=(ARROW:-1,HAND:-2}

能夠使用button_cursor屬性來(lái)設(shè)置鼠標(biāo)劃過(guò)button時(shí)的光標(biāo)狀態(tài)。默認(rèn)為

SWFUpload.CURSOR.ARROW,假如設(shè)置為SWFUpload.CURSOR.HAND,則為手形

SWFUpload.WIND0W_M0DE

SWFUpload.WINDOWMODE是一個(gè)包含了該SWF插入到頁(yè)面中的wmode屬性的JS

對(duì)象.能夠通過(guò)設(shè)置button_window_mode屬性來(lái)告訴瀏覽器具體以哪種模式顯

示此SWFo

SWFUpload.WINDOWMODE={WINDOW:"window”,TRANSPARENT:"transparent",

OPAQUE:〃opaque"};

SWFUpload.WINDOWJfODE.WINDOW是默認(rèn)的模式.該SWF將位于頁(yè)面元素的最高

層級(jí)。

SWFUpload.WINDOWJfODE.OPAQUE該SWF能夠被頁(yè)面類(lèi)的其他元素通過(guò)層級(jí)的

設(shè)置來(lái)覆蓋它。

SWFUpload.WINDOWJfODE.TRANSPARENT該SWF的背景是透明的,能夠透過(guò)它看到

背后的頁(yè)面元素。

屬性

下面這個(gè)列表是有關(guān)屬性的具體描述。使用其它屬性或者者對(duì)只讀屬性進(jìn)行了寫(xiě)

的操作都會(huì)造成SWFUpload出現(xiàn)問(wèn)題。

customSettings(可讀/可寫(xiě))

customSettings屬性是一個(gè)空的JavaScript對(duì)象,它被用來(lái)存儲(chǔ)跟SWFUpload

實(shí)例有關(guān)聯(lián)的數(shù)據(jù)。它的內(nèi)容能夠使用設(shè)置對(duì)象中的customSettings屬性來(lái)初

始化。

注意:一些插件使用customSeUings對(duì)象來(lái)實(shí)現(xiàn)它們的內(nèi)部操縱。當(dāng)重寫(xiě)整個(gè)

customSettings對(duì)象的時(shí)候需要?jiǎng)?wù)必小心。

比如:

//初始化包含自定義設(shè)置的SWFUpload對(duì)象varswfu=new

SWFUpload({custom_settings:{custom_setting_l:

z,custom_setting_value_l,/,custom_setting_2:,/custom_setting_value_2//,

custom_setting_n:〃custom_setting_value_n〃,}});

swfu.customSettings.custom_setting_l二,,custom_setting_value_r/;//更

換一個(gè)存在的自定義設(shè)置swfu.customSettings.myNewCustomSetting="new

customsettingvalue”;〃添加一個(gè)新的自定義設(shè)置〃用一個(gè)全新的對(duì)象重

寫(xiě)customSettingsswfu.customSettings={custom_setting_A:

z,custom_setting_value_Azz,custom_setting_B:

z,custom_setting_value_B,/);

movieName(只讀)

包含了該SWFUpload實(shí)例的惟一影片名字。該值被傳遞給Flash,用來(lái)完成Flash

與JavaScript的通信。該值被用來(lái)索引實(shí)例在SWFUpload.instances數(shù)組中的

位置,你無(wú)法更換此值。

方法

下面的方法用來(lái)操作SWFUpload。其中有些方法能夠跟元素1比如,按鈕)的點(diǎn)

擊事件綁定,其它的方法供SWFUpload內(nèi)部處理事件中調(diào)用,

objectaddSetting(setting_naaefvalue,default_value)

不贊成使用V2.1.0源碼中注釋:addSetting與getSetting己經(jīng)不再被使用了,

只是考慮到兼容V2版本,才繼續(xù)保留在庫(kù)中。

objectgetSetting{setting_name)

不贊成使用V2.1.0源碼中注釋:addSetting與getSetting己經(jīng)不再被使用了,

只是考慮到兼容V2版本,才繼續(xù)保留在庫(kù)中。

objectretrieveSetting{setting_value,default_value}

v2.1.0中已被刪除

booldestroy()

v2.1.0中新增

用于將一個(gè)SWFUpload實(shí)例從頁(yè)面中銷(xiāo)毀。不但刪除D0M中的Flash元素,同時(shí)

還刪除SWFUpload實(shí)例的有關(guān)引用。成功返回true,失敗返回false。

這個(gè)方法還沒(méi)有針對(duì)插件做兼容測(cè)試,可能會(huì)有不兼容問(wèn)題。(特別是SWFObject

插件)

voiddisplayDebuglnfo()

調(diào)用debug方法,在Debug輸出框中顯示SWFUpload實(shí)例的設(shè)置信息,假如設(shè)置

中的debug屬性是true,那么默認(rèn)是在實(shí)例化完成以后自動(dòng)調(diào)用此方法。

voidselectFileO

不贊成使用,不兼容FlashPlayer10

彈出flash的文件選擇對(duì)話(huà)框,只能選擇單個(gè)文件。

提醒:FlashPlayer10的安全機(jī)制更嚴(yán)格,類(lèi)似打開(kāi)文件上傳的對(duì)話(huà)框的操作,

一定需要用戶(hù)交互才觸發(fā),假如用腳本觸發(fā),會(huì)報(bào)#2176的運(yùn)行時(shí)錯(cuò)誤。因此

V2.2.0版本在SWF中添加了一個(gè)可定制的Button讓用戶(hù)交互來(lái)打開(kāi)文件對(duì)話(huà)

框。

voidselectFilesO

不贊成使用,不兼容FlashPlayer10

彈出flash的文件選擇對(duì)話(huà)框,可一次性選擇多個(gè)文件。

提醒:FlashPlayer10的安全機(jī)制更嚴(yán)格,類(lèi)似打開(kāi)文件上傳的對(duì)話(huà)框的操作,

一定需要用戶(hù)交互才觸發(fā),假如用腳本觸發(fā),會(huì)報(bào)#2176的運(yùn)行時(shí)錯(cuò)誤。因此

V2.2.0版本在SWF中添加了一個(gè)可定制的Button讓用戶(hù)交互來(lái)打開(kāi)文件對(duì)話(huà)

框。

voidstartUpload{file_id)

指定file_id來(lái)啟動(dòng)該文件的上傳,假如file_id被忽略了,那么默認(rèn)開(kāi)始上傳

第一個(gè)文件。

voidcancelUpload{file^d,trigger_error_event)

指定file_id來(lái)退出文件的上傳,從上傳隊(duì)列中刪除該文件0

假如忽略file_id,那么默認(rèn)文件上傳隊(duì)列中的第一個(gè)文件將被退出上傳。

假如取消的文件是正在上傳,那么會(huì)觸發(fā)uploadError事件。

假如將可選參數(shù)trigger_error_event設(shè)置為false,那么uploadError事件不

可能觸發(fā)。

voidstopUpload()

假如當(dāng)前有文件上傳,那么停止上傳,同時(shí)將文件還原到上傳隊(duì)列中。

停止了正在上傳的文件,uploadError事件會(huì)被觸發(fā)。假如如今沒(méi)有正在上傳文

件,那么不可能發(fā)生任何操作,不可能觸發(fā)任何事件。

objectgetStats()

voidsetStats{stats_object)

Stats統(tǒng)計(jì)對(duì)象是能夠被修改的。假如你希望在上傳完畢之后修改上傳成功或者

者上傳失敗的統(tǒng)計(jì)數(shù)目時(shí),那么能夠使用該方法。

提醒:可供修改的屬性只有successful_uploads,upload_errors,

up1oad_cance11ed,queue_errors,同時(shí)值務(wù)必是Number類(lèi)型。

objectgetFile(/yie_ie7|index)

傳遞Number類(lèi)型的參數(shù)會(huì)被認(rèn)定為index,那么返回的是文件隊(duì)列(所有嘗試

入隊(duì)文件,包含因沒(méi)有通過(guò)文件大小、類(lèi)型檢測(cè)等而觸發(fā)fileQueueError,沒(méi)

有成功加入文件上傳隊(duì)列的文件對(duì)象)數(shù)組中下標(biāo)為index的文件對(duì)象。假如

index不在隊(duì)列數(shù)組范圍內(nèi),那么返回null。

傳遞非Number類(lèi)型的參數(shù)會(huì)被認(rèn)定為file_id,那么返回的是文件上傳隊(duì)列(通

過(guò)文件檢測(cè),準(zhǔn)備好進(jìn)行上傳的文件)數(shù)組中id為file_id的文件對(duì)象。假如

參數(shù)為空,或者者沒(méi)有此id的文件對(duì)象,那么返回文件尊待隊(duì)列中的第一個(gè)文

件對(duì)象,假如第一個(gè)文件對(duì)象為空,那么返回null。

voidaddPostParam{name,value)

給設(shè)置中的post_params對(duì)象添加值對(duì),當(dāng)文件上傳的時(shí)候,這個(gè)值對(duì)會(huì)一同在

POST中發(fā)送。

假如設(shè)置的時(shí)候,post_parans中與存在該值,那么實(shí)際上會(huì)被覆蓋。

voidremovePostParam{name)

從設(shè)置中的post_params對(duì)象中刪除name指定的屬性,當(dāng)文件上傳的時(shí)候,刪

除的值對(duì)不可能繼續(xù)在POST中發(fā)送。

booladdFi1eParam(file_id}name,value)

為指定file_id的特定文件對(duì)象添加POST值對(duì),假如添加的name屬性已經(jīng)存在,

那么原值會(huì)直覆蓋。

假如需要給所有文件對(duì)象添加POST值,那么能夠使用設(shè)置中的post_params屬

性。

boolremoveFi1eParam(file_idfname)

刪除由addFileParam添加的POST值對(duì).

假如POST設(shè)置中沒(méi)有此屬性,那么返回false。

voidsetUploadURL(z/r7)

動(dòng)態(tài)修改設(shè)置中的upload_url屬性。

voidsetPostParams{param_objec£)

動(dòng)態(tài)修改post_params,往常的屬性全部被覆蓋。param_object務(wù)必是一個(gè)

JavaScript的套本對(duì)象,所有屬性與值都務(wù)必是字符串余型。

voidsetFileTypes(types,description)

動(dòng)態(tài)修改設(shè)置中的file_types與file_types_description,兩個(gè)參數(shù)都是務(wù)

必的。

voidsetFileSizeLimit

動(dòng)態(tài)修改設(shè)置中的file_size_limit,此修改針對(duì)之后的文件大小過(guò)濾有效。

file_size」imit參數(shù)提收一個(gè)單位,有效的單位有B、KB、MB、GB,默認(rèn)單位

是KB。

比如:2147483648B,2097152,2097152KB,2048MB,2GB

voidsetFileUploadLimit(file_upload_limit)

動(dòng)態(tài)修改設(shè)置中的file_upload1imit,特殊值0表示無(wú)限制。

提醒:這里限制的是一個(gè)SWFUpload實(shí)例操縱上傳成功的文件總數(shù)。

voidsetFileQueueLimit{file_queue_liinit)

動(dòng)態(tài)修改設(shè)置中的file_queue_limit,特殊值0表示無(wú)限制。

提醒:這里限制的是文件上傳隊(duì)列中(入隊(duì)檢測(cè)通過(guò)的文件會(huì)添加到上傳隊(duì)列等

待上傳)同意排隊(duì)的文件總數(shù)。

voidsetFilePostName{file_post_naine)

動(dòng)態(tài)修改設(shè)置中的file_post_name,注意在Linux環(huán)境下,F(xiàn)lashPlayer是忽略

此設(shè)置的。

voidsetUseQueryString(us之

動(dòng)態(tài)修改設(shè)置中的use_query_string,設(shè)置為true的時(shí)候,SWFUpload以GET

形式發(fā)送數(shù)據(jù),假如為false,那么就以POST發(fā)送數(shù)據(jù)。

voidsetDebugEnabled

啟動(dòng)/禁止debug輸出,debug_enabled參數(shù)是一個(gè)布爾值。

voidsetButtonlmageURL(url)

動(dòng)態(tài)修改按鈕的圖片。url參數(shù)是相關(guān)于該swf文件或者者是絕對(duì)地址的圖片(或

者者是SWF)o所有FLASH支持的圖片類(lèi)型都能夠使用(gif,jpg,png,或者者是

一個(gè)SWF)o

該按鈕圖片需要通過(guò)一定規(guī)則(CSSSprite)的處理。按鈕圖片中需要包含按鈕

的4個(gè)狀態(tài),從上到下依次是normal,hover,down/click,disabled.(能夠

參照官方demo中的圖片)

voidsetButtonDimensions(irzWtAheight)

動(dòng)態(tài)修改SWF影片的尺寸以習(xí)慣Button的圖片大小。

voidsetButtonText(text)

voidsetButtonTextStyle{css_style_tex£}

voidsetButtonTextPadding(2e/t,top)

SetsthetopandleftpaddingoftheFlashbuttontext.Thevaluesmay

benegative.

voidsetButtonDisabled(7sP7saZ?Jeo!)

When'true'changestheFlashButtonstatetodisabledandignoresany

clicks.

voidsetButtonActionkbuttonActioii)

SetstheactiontakenwhentheFlashbuttonisclicked.Validactionvalues

aretakenfromtheBUTT0N_ACTI0Nconstants.

voidsetButtonCursor{buttonCursor)

SetsthemousecursorshownwhenhoveringovertheFlashbutton.Valid

cursorvaluesaretakenfromtheBUTTON_CURSORconstants.

事件

SWFUpload在操作過(guò)程中會(huì)觸發(fā)一系列事件,開(kāi)發(fā)者能夠利用這些回調(diào)的處理事

件來(lái)操縱UI,操縱操作或者者報(bào)告錯(cuò)誤。

所有的事件都是在SWFUpload實(shí)例的上下文中調(diào)用的,因此在這些回調(diào)的事件中

使用this能夠直接訪(fǎng)問(wèn)到該觸發(fā)該事件的實(shí)例對(duì)象。

所有事件應(yīng)該在實(shí)例初始化時(shí)setting參數(shù)中預(yù)設(shè)完成。

flashReadyO

該事件函數(shù)是內(nèi)部事件,因此不能被重寫(xiě)。當(dāng)SWFupload實(shí)例化,加載的FLASH

完成所有初始化操作時(shí)觸發(fā)此事件。

提酉!i!:對(duì)應(yīng)設(shè)置中的自定義事件swfup1oad_1oaded_hand1er

swfUp1oadLoaded0

V2.L0版本中己經(jīng)刪除了此事件

fileDialogStart()

此事件在sclectFile或者者selectFilcs調(diào)用后,文件選擇對(duì)話(huà)框顯示之前觸

發(fā)。只能同時(shí)存在一個(gè)文件走話(huà)框。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件filedialogstart_handler

fileQueued(fi7eobject)

當(dāng)文件選擇對(duì)話(huà)框關(guān)閉消失時(shí),假如選擇的文件成功加入上傳隊(duì)列,那么針對(duì)每

個(gè)成功加入的文件都會(huì)觸發(fā)一次該事件(N個(gè)文件成功加入隊(duì)列,就觸發(fā)N次此

事件)。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件fi1e_queued_hand1er

fi1eQueueError{fileobject,errorcode,message)

當(dāng)選擇文件對(duì)話(huà)框關(guān)閉消失時(shí),假如選擇的文件加入到上傳隊(duì)列中失敗,那么針

對(duì)每個(gè)出錯(cuò)的文件都會(huì)觸發(fā)一次該事件(此事件與fileQueued事件是二選一觸

發(fā),文件添加到隊(duì)列只有兩種可能,成功與失敗)。

文件添加隊(duì)列出錯(cuò)的原因可能有:超過(guò)了上傳大小限制,文件為零字節(jié),超過(guò)文

件隊(duì)列數(shù)量限制,設(shè)置之外的無(wú)效文件類(lèi)型。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件file_queue_error_handler

注意:假如選擇入隊(duì)的文件數(shù)量超出了設(shè)置中的數(shù)量限制,那么所有文件都不入

隊(duì),此事件只觸發(fā)一次。假如沒(méi)有超出數(shù)目限制,那么會(huì)對(duì)每個(gè)文件進(jìn)行文件類(lèi)

型與大小的檢測(cè),關(guān)于不通過(guò)的文件觸發(fā)此事件,通過(guò)的文件成功入隊(duì)。

fileDialogComplete{numberoffilesselected,numberoffilesqueued)

當(dāng)選擇文件對(duì)話(huà)框關(guān)閉,同時(shí)所有選擇文件已經(jīng)處理完成(加入上傳隊(duì)列成功或

者者失敗)時(shí),此事件被觸發(fā),numberoffilesselected是選擇的文件數(shù)目,

numberoffilesqueued是此次選擇的文件中成功加入隊(duì)列的文件數(shù)目。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件file_dialog_complete_handler

注意:假如你希望文件在選擇以后自動(dòng)上傳,那么在這個(gè)事件中調(diào)用

this.startUploadO是一個(gè)不錯(cuò)的選擇。假如需要更嚴(yán)格的推斷,在調(diào)用上傳

之前,能夠?qū)θ腙?duì)文件的個(gè)數(shù)做一個(gè)推斷,假如大于0,那么能夠開(kāi)始上傳。

uploadStart{fileobjeef)

在文件往服務(wù)端上傳之前觸發(fā)此事件,能夠在這里完成上傳前的最后驗(yàn)證與其他

你需要的操作,比如添加、修改、刪除post數(shù)據(jù)等。

在完成最后的操作以后,假如函數(shù)返回false,那么這個(gè)上傳不可能被啟動(dòng),同

時(shí)觸發(fā)uploadError事件(cede為ERROR_CODE_FILE_VALIDATION_FAILED),假

如返回true或者者無(wú)返回,那么將正式啟動(dòng)上彳專(zhuān)。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件uploadstarthandler

uploadProgress{fileobject,bytescomplete,totalbytes)

該事件由flash定時(shí)觸發(fā),提供三個(gè)參數(shù)分別訪(fǎng)問(wèn)上傳文件對(duì)象、己上傳的字節(jié)

數(shù),總共的字節(jié)數(shù)。因此能夠在這個(gè)事件中來(lái)定時(shí)更新頁(yè)面中的UI元素,以達(dá)

到及時(shí)顯示上傳進(jìn)度的效果。

注意:在Linux下,F(xiàn)lashPlayer只在所有文件上傳完畢以后才觸發(fā)一次該事

件,官方指出這是LinuxFlashPlayer的一個(gè)bug,目前SWFpload庫(kù)無(wú)法解決

(我沒(méi)有測(cè)試過(guò))。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件up1oad_progress_hand1er

uploadError{fileobject,errorcode,message)

提醒:對(duì)應(yīng)設(shè)置中的自定義事件upload_error_handler

注意:如今文件上傳的周期還沒(méi)有結(jié)束,不能在這里開(kāi)始下一個(gè)文件的上傳。

uploadSuccess{fileobject,serverdata)

提醒:對(duì)應(yīng)設(shè)置中的自定義事件uploadsuccesshandler

注意:

1.serverdata是服務(wù)端處理程序返回的數(shù)據(jù)。

2.如今文件上傳的周期還沒(méi)有結(jié)束,不能在這里開(kāi)始下一個(gè)文件的上傳。

3.在window平臺(tái)下,那么服務(wù)端的處理程序在處理完文件存儲(chǔ)以后,務(wù)必

返回一個(gè)非空值,否則此事件不可能被觸發(fā),隨后的uploadComplete事

件也無(wú)法執(zhí)行。

uploadComplete{fileobject)

當(dāng)上傳隊(duì)列中的一個(gè)文件完成了一個(gè)上傳周期,不管是成功(uoloadSuccess觸

發(fā))還是失敗(uploadError觸發(fā)),此事件都會(huì)被觸發(fā),這也標(biāo)志著一個(gè)文件的

上傳完成,能夠進(jìn)行下一個(gè)文件的上傳了。

假如要進(jìn)行多文件自動(dòng)上傳,那么在這個(gè)時(shí)候調(diào)用this.startUpload。來(lái)啟動(dòng)

下一個(gè)文件的上傳是不錯(cuò)的選擇。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件up1oad_comp1ete_hand1er

注意:當(dāng)在進(jìn)行多文件上傳的時(shí)候,中途用cancelUpload取消了正在上傳的文

件,或者者用stopUpload停止了正在上傳的文件,那么在uploadComplete中就

要很小心的使用this.startUpload(),由于在上述情況下,uploadError與

uploadComplete會(huì)順序執(zhí)行,因此盡管停止了當(dāng)前文件的上傳,但會(huì)立即進(jìn)行

下一個(gè)文件的上傳,你可能會(huì)覺(jué)得這很驚奇,但事實(shí)上程序并沒(méi)有錯(cuò)。假如你希

望終止整個(gè)隊(duì)列的自動(dòng)上傳,那么你需要做額外的程序處理了。

debug{message)

假如debugsetting設(shè)置為true,那么頁(yè)面底部會(huì)自動(dòng)添加一個(gè)textArea,

SWFUpload庫(kù)與Flash都會(huì)調(diào)用此事件來(lái)在頁(yè)面底部的輸出框中添加debug信息

供調(diào)試使用。

提醒:對(duì)應(yīng)設(shè)置中的自定義事件debug_handler

SWFUpload功能對(duì)象

Settingsobject

它是一個(gè)Object類(lèi)型的變量,為SWFUpload的實(shí)例初始化提供配置。其中的每

一個(gè)配置屬性都只能出現(xiàn)一次。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論