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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

SWFUpload多文件上傳手冊

SWFUpload提供的要緊功能:

?在文件選擇對話框中能夠進行文件多選

?頁面無刷新的上傳

?提供上傳進度的事件回調,實時顯示上傳進度

?良好的瀏覽器兼容性

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

?

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

支持)

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

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

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

新上傳狀態(tài),開發(fā)人員能夠利用這些事件來及時更新頁面中的上傳進度UI。

不幸的是FlashPlayer10更嚴格的安全機制迫使我們不得不將一個Flash

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

的方式來自定制更靈活的UI顯示。

SWFUploadv2

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

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

?兼容了FlashPlayer10的安全限制問題

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

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

?更直觀的事件回調

?動態(tài)修改實例設置

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

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

?自定義上傳的順序

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

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

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

?針對每個文件在上傳前都提供一個最后確認的時間回調

?解決了vl.0.2版本中未描述到的關于Flash的bug

?解決的vl.0.2中的bug:

o在FireFox中,假如窗口的滾動條沒有回滾到頂部,那么Flash

無法加載

oRace-conditionswhenfilesarecached

?兼容ASP.NetForms

SWFUploadv2連續(xù)了SWFUpload的設計目標,將UI分離以交給開發(fā)人員操縱與

后續(xù)擴展

概述

傳統(tǒng)的HTML上傳

標準的HTML上傳表單為用戶提供一個文本框與按鈕來選擇文件,選中的文件是

隨著form表單提交的。整個文件上傳完成之后,下一個頁面才會顯示,同時不

能對選擇的文件做預設的文件檢驗,比如文件大小限制,文件類型限制。當文件

上傳時,用戶獲得的可用的反饋信息很少。

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

SWFUpload

SWFUpload使用一個Flash影片來操縱文件的選擇與上傳。此FLASH中包含一個

用戶自定制UI的按鈕,點擊該按鈕能夠激活Flash本身的高級文件上傳對話框,

它能夠根據(jù)用戶的設置來進行單文件或者者是多文件的上傳,選擇的的文件類

型也是能夠被限制的,因此用戶只能選擇指定的適當?shù)奈募?,比?.jgp;*.gif。

提醒:FlashPlayer10的安全機制更嚴格,類似打開文件上傳的對話框的操作,

一定需要用戶交互才觸發(fā),假如用腳本觸發(fā),會報#2176的運行時錯誤。因此

V2.2.0版本在SWF中添加了一個可定制的Button讓用戶交互來打開文件對話

框。

當選定文件以后,每個文件都會被驗證與處理。當Flash上傳文件的時候,由開

發(fā)人員預定義的Javascript事件會被定時觸發(fā)以便來更新頁面中的UI,同時還

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

選定的文件的上傳與它所在頁面、表單是獨立的。每個文件都是單獨上傳的,這

就保證了服務端腳本能夠在一個時間點更容易地處理單個文件。盡管Flash提供

了上傳服務,但是頁面并不可能提交或者者重新載入。相比于標準的HTMLForm,

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

上傳單獨處理。

入門

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

可用的演示展示了它能夠完成什么情況與它是如何完成這些常見的任務。

SWFUpload由4部分構成:

1.初始化與設置(Javascript)

2.JavaScript庫:SWFUpload.js

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

4.事件處理(Javascript)

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

件引起的。

初始化與設置

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

它的構造函數(shù)需要一個Object類型的設置對象。這個設置對象通常是一個直接

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

初始化的SWFUpload對象的弓用需要保留下來,由于當顯示文件選擇對話框與啟

動文件上傳的時候需要這個實例的引用。

比如:用直接定義的Object類型變量設置初始化SWFUpload對象

varswfu;

window,onload=function0{

swfu=newSWFUpload({

file_size_limit:"20480〃});

};

比如:用存儲在變量中的設置對象初始化SWFUpload對象

varswfu;

JavaScript庫

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

當SWFUpload創(chuàng)建完成并能訪問它的一系列功能時,開發(fā)人員能夠來操縱此實

例。

比如:添加SWFUpload.js到頁面中

比如:根據(jù)需要的設置來初始化SWFUpload

button_placeholder_id:"spanSWFUploadButton"});

Flash操縱元素

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

Flash操縱元素的文件地址在初始化的時候就應該在SWFUpload設置對象中定

義。

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

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

時候通過與Javascript通信來通知瀏覽器處理更新。

事件處理

開發(fā)人員務必定義一系列JavaScript函數(shù)來處理SWFUpload事件回調,當一些

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

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

完成等的信息反饋。

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

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

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ù)變量在設置對象中指定給了

upload_success_handler屬性。varuploadSuccessEventllandler=function

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

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

SWFUploadJavaScript對象

構造函數(shù)

SWFUpload(settingsobject)

返回:一個SWFUpload實例

varswfupload_instance=newSWFUpload(settings_object);

全局變量與常量

SWFUpload定義了一些全局變量與常量,這對SWFUpload的高級應用程序與處理

錯誤都是很有用的,它們都是只讀的。

SWFUpload.instances

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

Flash播放器依靠這個數(shù)組來調用正確的處理事件。該數(shù)組是由movieName屬性

來索引的關聯(lián)數(shù)組。比如:SHFUpload.instances.SWFUpload_0訪問的是第一個

實例引用。

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

個對象(關聯(lián)數(shù)組)。

SWFUpload.movieCount

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

同時確保給每一個Flash影片分配一個惟一的movieNameo

SWFUpload.QUEUE_ERROR

SWFUpload.QUEUE_ERROR是一個包含了QueueError錯誤碼的JS對象,通常用

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

體類型。

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是一個包含了UploadError錯誤碼的JS對象,通常

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

型。

SWFUpload.FILE_STATUS

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

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

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

SUCCESS:-4,CANCELLED:-5};

默認處理事件

SWFUpload庫提供了一系列默認的處理事件。當開發(fā)人員沒有自定義處理事件

時,SWFUpload庫將調用這些默認的處理事件。因此當自定義事件時,不要把這

些默認的處理事件覆迤了。自定義事件是需要在settings對象中被單獨定義的。

SWFUpload.BUTT0N_ACTI0N

SWFUpload.BUTT0N_ACTI0N是一個包含button的動作預設的JS對象。

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

STARTJJPL0AD:-120}

能夠使用button_action屬性來設置Flash本身的文件上傳對話框的行為。默認

為SWFUpload.BUTT0N_ACTI0N.SELECT_FILES,點擊按鈕將會打開多文件上傳的

對話框。假如設置為SWFUpload.BUTT0N_ACTI0N.SELECT_FILE,則為單文件上傳。

假如設置為SWFUpload.BUTT0N_ACTI0N.START_UPL0AD,則啟動文件上傳

SWFUpload.CURSOR

SWFUpload.CURSOR是一個包含button的光標狀態(tài)碼的JS對象。

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

能夠使用button_cursor屬性來設置鼠標劃過button時的光標狀態(tài)。默認為

SWFUpload.CURSOR.ARROW,假如設置為SWFUpload.CURSOR.HAND,則為手形

SWFUpload.WIND0W_M0DE

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

對象.能夠通過設置button_window_mode屬性來告訴瀏覽器具體以哪種模式顯

示此SWFo

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

OPAQUE:〃opaque"};

SWFUpload.WINDOWJfODE.WINDOW是默認的模式.該SWF將位于頁面元素的最高

層級。

SWFUpload.WINDOWJfODE.OPAQUE該SWF能夠被頁面類的其他元素通過層級的

設置來覆蓋它。

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

背后的頁面元素。

屬性

下面這個列表是有關屬性的具體描述。使用其它屬性或者者對只讀屬性進行了寫

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

customSettings(可讀/可寫)

customSettings屬性是一個空的JavaScript對象,它被用來存儲跟SWFUpload

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

始化。

注意:一些插件使用customSeUings對象來實現(xiàn)它們的內部操縱。當重寫整個

customSettings對象的時候需要務必小心。

比如:

//初始化包含自定義設置的SWFUpload對象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/;//更

換一個存在的自定義設置swfu.customSettings.myNewCustomSetting="new

customsettingvalue”;〃添加一個新的自定義設置〃用一個全新的對象重

寫customSettingsswfu.customSettings={custom_setting_A:

z,custom_setting_value_Azz,custom_setting_B:

z,custom_setting_value_B,/);

movieName(只讀)

包含了該SWFUpload實例的惟一影片名字。該值被傳遞給Flash,用來完成Flash

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

位置,你無法更換此值。

方法

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

擊事件綁定,其它的方法供SWFUpload內部處理事件中調用,

objectaddSetting(setting_naaefvalue,default_value)

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

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

objectgetSetting{setting_name)

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

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

objectretrieveSetting{setting_value,default_value}

v2.1.0中已被刪除

booldestroy()

v2.1.0中新增

用于將一個SWFUpload實例從頁面中銷毀。不但刪除D0M中的Flash元素,同時

還刪除SWFUpload實例的有關引用。成功返回true,失敗返回false。

這個方法還沒有針對插件做兼容測試,可能會有不兼容問題。(特別是SWFObject

插件)

voiddisplayDebuglnfo()

調用debug方法,在Debug輸出框中顯示SWFUpload實例的設置信息,假如設置

中的debug屬性是true,那么默認是在實例化完成以后自動調用此方法。

voidselectFileO

不贊成使用,不兼容FlashPlayer10

彈出flash的文件選擇對話框,只能選擇單個文件。

提醒:FlashPlayer10的安全機制更嚴格,類似打開文件上傳的對話框的操作,

一定需要用戶交互才觸發(fā),假如用腳本觸發(fā),會報#2176的運行時錯誤。因此

V2.2.0版本在SWF中添加了一個可定制的Button讓用戶交互來打開文件對話

框。

voidselectFilesO

不贊成使用,不兼容FlashPlayer10

彈出flash的文件選擇對話框,可一次性選擇多個文件。

提醒:FlashPlayer10的安全機制更嚴格,類似打開文件上傳的對話框的操作,

一定需要用戶交互才觸發(fā),假如用腳本觸發(fā),會報#2176的運行時錯誤。因此

V2.2.0版本在SWF中添加了一個可定制的Button讓用戶交互來打開文件對話

框。

voidstartUpload{file_id)

指定file_id來啟動該文件的上傳,假如file_id被忽略了,那么默認開始上傳

第一個文件。

voidcancelUpload{file^d,trigger_error_event)

指定file_id來退出文件的上傳,從上傳隊列中刪除該文件0

假如忽略file_id,那么默認文件上傳隊列中的第一個文件將被退出上傳。

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

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

可能觸發(fā)。

voidstopUpload()

假如當前有文件上傳,那么停止上傳,同時將文件還原到上傳隊列中。

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

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

objectgetStats()

voidsetStats{stats_object)

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

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

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

up1oad_cance11ed,queue_errors,同時值務必是Number類型。

objectgetFile(/yie_ie7|index)

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

入隊文件,包含因沒有通過文件大小、類型檢測等而觸發(fā)fileQueueError,沒

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

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

傳遞非Number類型的參數(shù)會被認定為file_id,那么返回的是文件上傳隊列(通

過文件檢測,準備好進行上傳的文件)數(shù)組中id為file_id的文件對象。假如

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

件對象,假如第一個文件對象為空,那么返回null。

voidaddPostParam{name,value)

給設置中的post_params對象添加值對,當文件上傳的時候,這個值對會一同在

POST中發(fā)送。

假如設置的時候,post_parans中與存在該值,那么實際上會被覆蓋。

voidremovePostParam{name)

從設置中的post_params對象中刪除name指定的屬性,當文件上傳的時候,刪

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

booladdFi1eParam(file_id}name,value)

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

那么原值會直覆蓋。

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

性。

boolremoveFi1eParam(file_idfname)

刪除由addFileParam添加的POST值對.

假如POST設置中沒有此屬性,那么返回false。

voidsetUploadURL(z/r7)

動態(tài)修改設置中的upload_url屬性。

voidsetPostParams{param_objec£)

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

JavaScript的套本對象,所有屬性與值都務必是字符串余型。

voidsetFileTypes(types,description)

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

必的。

voidsetFileSizeLimit

動態(tài)修改設置中的file_size_limit,此修改針對之后的文件大小過濾有效。

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

是KB。

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

voidsetFileUploadLimit(file_upload_limit)

動態(tài)修改設置中的file_upload1imit,特殊值0表示無限制。

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

voidsetFileQueueLimit{file_queue_liinit)

動態(tài)修改設置中的file_queue_limit,特殊值0表示無限制。

提醒:這里限制的是文件上傳隊列中(入隊檢測通過的文件會添加到上傳隊列等

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

voidsetFilePostName{file_post_naine)

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

此設置的。

voidsetUseQueryString(us之

動態(tài)修改設置中的use_query_string,設置為true的時候,SWFUpload以GET

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

voidsetDebugEnabled

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

voidsetButtonlmageURL(url)

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

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

一個SWF)o

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

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

參照官方demo中的圖片)

voidsetButtonDimensions(irzWtAheight)

動態(tài)修改SWF影片的尺寸以習慣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在操作過程中會觸發(fā)一系列事件,開發(fā)者能夠利用這些回調的處理事

件來操縱UI,操縱操作或者者報告錯誤。

所有的事件都是在SWFUpload實例的上下文中調用的,因此在這些回調的事件中

使用this能夠直接訪問到該觸發(fā)該事件的實例對象。

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

flashReadyO

該事件函數(shù)是內部事件,因此不能被重寫。當SWFupload實例化,加載的FLASH

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

提酉!i!:對應設置中的自定義事件swfup1oad_1oaded_hand1er

swfUp1oadLoaded0

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

fileDialogStart()

此事件在sclectFile或者者selectFilcs調用后,文件選擇對話框顯示之前觸

發(fā)。只能同時存在一個文件走話框。

提醒:對應設置中的自定義事件filedialogstart_handler

fileQueued(fi7eobject)

當文件選擇對話框關閉消失時,假如選擇的文件成功加入上傳隊列,那么針對每

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

事件)。

提醒:對應設置中的自定義事件fi1e_queued_hand1er

fi1eQueueError{fileobject,errorcode,message)

當選擇文件對話框關閉消失時,假如選擇的文件加入到上傳隊列中失敗,那么針

對每個出錯的文件都會觸發(fā)一次該事件(此事件與fileQueued事件是二選一觸

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

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

件隊列數(shù)量限制,設置之外的無效文件類型。

提醒:對應設置中的自定義事件file_queue_error_handler

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

隊,此事件只觸發(fā)一次。假如沒有超出數(shù)目限制,那么會對每個文件進行文件類

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

fileDialogComplete{numberoffilesselected,numberoffilesqueued)

當選擇文件對話框關閉,同時所有選擇文件已經(jīng)處理完成(加入上傳隊列成功或

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

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

提醒:對應設置中的自定義事件file_dialog_complete_handler

注意:假如你希望文件在選擇以后自動上傳,那么在這個事件中調用

this.startUploadO是一個不錯的選擇。假如需要更嚴格的推斷,在調用上傳

之前,能夠對入隊文件的個數(shù)做一個推斷,假如大于0,那么能夠開始上傳。

uploadStart{fileobjeef)

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

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

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

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

如返回true或者者無返回,那么將正式啟動上彳專。

提醒:對應設置中的自定義事件uploadstarthandler

uploadProgress{fileobject,bytescomplete,totalbytes)

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

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

到及時顯示上傳進度的效果。

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

件,官方指出這是LinuxFlashPlayer的一個bug,目前SWFpload庫無法解決

(我沒有測試過)。

提醒:對應設置中的自定義事件up1oad_progress_hand1er

uploadError{fileobject,errorcode,message)

提醒:對應設置中的自定義事件upload_error_handler

注意:如今文件上傳的周期還沒有結束,不能在這里開始下一個文件的上傳。

uploadSuccess{fileobject,serverdata)

提醒:對應設置中的自定義事件uploadsuccesshandler

注意:

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

2.如今文件上傳的周期還沒有結束,不能在這里開始下一個文件的上傳。

3.在window平臺下,那么服務端的處理程序在處理完文件存儲以后,務必

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

件也無法執(zhí)行。

uploadComplete{fileobject)

當上傳隊列中的一個文件完成了一個上傳周期,不管是成功(uoloadSuccess觸

發(fā))還是失?。╱ploadError觸發(fā)),此事件都會被觸發(fā),這也標志著一個文件的

上傳完成,能夠進行下一個文件的上傳了。

假如要進行多文件自動上傳,那么在這個時候調用this.startUpload。來啟動

下一個文件的上傳是不錯的選擇。

提醒:對應設置中的自定義事件up1oad_comp1ete_hand1er

注意:當在進行多文件上傳的時候,中途用cancelUpload取消了正在上傳的文

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

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

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

下一個文件的上傳,你可能會覺得這很驚奇,但事實上程序并沒有錯。假如你希

望終止整個隊列的自動上傳,那么你需要做額外的程序處理了。

debug{message)

假如debugsetting設置為true,那么頁面底部會自動添加一個textArea,

SWFUpload庫與Flash都會調用此事件來在頁面底部的輸出框中添加debug信息

供調試使用。

提醒:對應設置中的自定義事件debug_handler

SWFUpload功能對象

Settingsobject

它是一個Object類型的變量,為SWFUpload的實例初始化提供配置。其中的每

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

溫馨提示

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

評論

0/150

提交評論