




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江國(guó)企招聘2025寧波寧海傳媒集團(tuán)下屬公司招聘7人筆試參考題庫(kù)附帶答案詳解
- 菏澤2025年菏澤市市直事業(yè)單位引進(jìn)87名高層次急需緊缺人才筆試歷年參考題庫(kù)附帶答案詳解
- 信陽(yáng)師范大學(xué)《工程機(jī)械液壓傳動(dòng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 宿遷澤達(dá)職業(yè)技術(shù)學(xué)院《炎黃服飾文化產(chǎn)品設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽郵電職業(yè)技術(shù)學(xué)院《場(chǎng)館經(jīng)營(yíng)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北資源環(huán)境職業(yè)技術(shù)學(xué)院《工商行政管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州體育職業(yè)學(xué)院《工科大學(xué)化學(xué)-物理化學(xué)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京理工大學(xué)珠海學(xué)院《數(shù)字取證技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 眉山藥科職業(yè)學(xué)院《沖壓工藝與模具設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北黃岡應(yīng)急管理職業(yè)技術(shù)學(xué)院《預(yù)測(cè)與決策》2023-2024學(xué)年第二學(xué)期期末試卷
- 民法典知識(shí)題庫(kù)110題(含答案)
- 小學(xué)數(shù)學(xué)小升初小升初專(zhuān)題復(fù)習(xí)小升初專(zhuān)題復(fù)習(xí)
- GB/T 4942.1-2001旋轉(zhuǎn)電機(jī)外殼防護(hù)分級(jí)(IP代碼)
- GB/T 24675.2-2009保護(hù)性耕作機(jī)械深松機(jī)
- GB/T 224-2008鋼的脫碳層深度測(cè)定法
- 中等職業(yè)學(xué)校藝術(shù)課程標(biāo)準(zhǔn)(2020年版)(word精排版)
- GB/T 1355-2021小麥粉
- 無(wú)人機(jī)結(jié)構(gòu)與系統(tǒng)-第1章-無(wú)人機(jī)結(jié)構(gòu)與飛行原理課件
- (完整)中小學(xué)教師高級(jí)職稱(chēng)專(zhuān)業(yè)水平能力試題庫(kù)及答案(通用版)
- 2023年STD溫鹽深剖面儀行業(yè)分析報(bào)告及未來(lái)五至十年行業(yè)發(fā)展報(bào)告
- 護(hù)理管理中的組織溝通課件
評(píng)論
0/150
提交評(píng)論