




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、什么是SWFUpload?SWFUpload是一個(gè)客戶端文件上傳工具,最初由Vinterwebb.se開發(fā),它通過整合Flash與JavaScript技術(shù)為WEB開發(fā)者提供了一個(gè)具有豐富功能繼而超越傳統(tǒng)<input type="file" />標(biāo)簽的文件上傳模式。編輯本段SWFUpload的主要特點(diǎn)* 可以同時(shí)上傳多個(gè)文件;* 類似AJAX的無刷新上傳;* 可以顯示上傳進(jìn)度;* 良好的瀏覽器兼容性;* 兼容其他JavaScript庫 (例如:jQuery, Prototype等);* 支持Flash 8和Flash 9;SWFUpload不同于其他基于Flash
2、構(gòu)建的上傳工具,它有著優(yōu)雅的代碼設(shè)計(jì),開發(fā)者可以利用XHTML、CSS和JavaScript來隨心所欲的定制它在瀏覽器下的外觀;它還提供了一組簡明的JavaScript事件,借助它們開發(fā)者可以方便的在文件上傳過程中更新頁面內(nèi)容來營造各種動態(tài)效果。在使用SWFUpload之前,請確認(rèn)你具備一定的JavaScript和DOM知識。在實(shí)際開發(fā)中,大部分的錯(cuò)誤都是由于錯(cuò)誤的設(shè)置和低劣的Event Handlers處理程序所造成的。編輯本段文檔中文翻譯http:/www.v-編輯本段效果演示* Classic Form Demo /formsdemo ;*
3、 Features Demo /featuresdemo ;* Application Demo /applicationdemo ;* v1.0.2 Plugin Demo /v102demo ;編輯本段選擇合適的Flash控件在發(fā)行包(SWFUpload v2)中含有2個(gè)版本的Flash控件(swfupload_f8.swf 與wfupload_f9.swf),其中第一個(gè)版本擁有最佳的兼容性,但是為此損失了部分功能;而第二個(gè)版本提供了一些附加的功能
4、但是損失了兼容性。編輯本段SWFUpload的初始化與配置首先,在頁面中引用SWFUpload.js ,如<script type="text/javascript" src="/swfupload.js"></script>然后,初始化SWFUpload ,如var swfu; window.onload = function () swfu = new SWFUpload( upload_url : "http:/www.swfupload
5、.org/upload.php",flash_url : "/swfupload_f9.swf", file_size_limit : "20480" );以下是一個(gè)標(biāo)準(zhǔn)的SWFUpload初始化設(shè)置所需的參數(shù),你可以根據(jù)需要自己進(jìn)行刪減: upload_url : "/upload.php", 處理上傳請求的服務(wù)器端腳本URLfile_post_name : "Filedata", 是POST
6、過去的$_FILES的數(shù)組名post_params : "post_param_name_1" : "post_param_value_1", "post_param_name_2" : "post_param_value_2", "post_param_name_n" : "post_param_value_n" , file_types : "*.jpg;*.gif", 允許上傳的文件類型file_t
7、ypes_description: "Web Image Files", 文件類型描述file_size_limit : "1024", 上傳文件體積上限,單位MBfile_upload_limit : 10, 限定用戶一次性最多上傳多少個(gè)文件,在上傳過程中,該數(shù)字會累加,如果設(shè)置為“0”,則表示沒有限制file_queue_limit : 2, 上傳隊(duì)列數(shù)量限制,該項(xiàng)通常不需設(shè)置,會根據(jù)file_upload_limit自動賦值flash_url : "/swfupload_f9.swf"
8、;, Flash控件的URLflash_width : "1px", flash_height : "1px", flash_color : "#FFFFFF", debug : false, 是否顯示調(diào)試信息swfupload_loaded_handler : swfupload_loaded_function, 當(dāng)Flash控件成功加載后觸發(fā)的事件處理函數(shù)file_dialog_start_handler : file_dialog_start_function, 當(dāng)文件選取對話框彈出前出發(fā)的事件處理
9、函數(shù)file_queued_handler : file_queued_function, file_queue_error_handler : file_queue_error_function, file_dialog_complete_handler : file_dialog_complete_function, 當(dāng)文件選取對話框關(guān)閉后觸發(fā)的事件處理函數(shù)upload_start_handler : upload_start_function, 開始上傳文件前觸發(fā)的事件處理函數(shù)upload_progress_handler : upload_progress_func
10、tion, upload_error_handler : upload_error_function, upload_success_handler : upload_success_function, 文件上傳成功后觸發(fā)的事件處理函數(shù)upload_complete_handler : upload_complete_function, debug_handler : debug_function, custom_settings : 自定義設(shè)置custom_setting_1 : "custom_setting_value_1",&
11、#160;custom_setting_2 : "custom_setting_value_2", custom_setting_n : "custom_setting_value_n", 編輯本段SWFUpload中的File Object在SWFUpload的使用過程中,無論在客戶端還是服務(wù)器端都要和File Object打交道,在一個(gè)File Object中包含了以下內(nèi)容: id : string, / SWFUpload file id, used for starting or cancelling a
12、nd upload index : number, / The index of this file for use in getFile(i) name : string, / The file name. The path is not included. size : number, / The file size in bytes type : string, / The file type as reported by the client operating system creationdate : Date, / The dat
13、e the file was created modificationdate : Date, / The date the file was last modified filestatus : number, / The file's current status. Use SWFUpload.FILE_STATUS to interpret the value. 編輯本段SWFUpload中的方法+ setPostParams (param_object)- 描述動態(tài)修改SWFUpload初始化設(shè)置中的post_params屬性,其中所有的值都將被覆
14、蓋。- 參數(shù)param_object:一個(gè)simple JavaScript object,所有的name/value都必須是字符串,例如(this.setPostParams( "Mari": name );)。- 返回void編輯本段SWFUpload中的事件SWFUpload在運(yùn)行過程中提供了多種事件,這些事件可以讓開發(fā)者借助句柄來改變頁面UI、改變行為,或者報(bào)告錯(cuò)誤。所有這些事件都可以在一個(gè)SWFUpload實(shí)體中被調(diào)用,這意味著在這些事件對應(yīng)的函數(shù)中,你可以用 this 關(guān)鍵字來代替引用SWFUpload實(shí)體。+ fileDialogComplete (numbe
15、r of files selected)- 觸發(fā)條件1. 用戶選擇好了要上傳文件,并關(guān)閉對話框;2. 用戶什么也沒選,并取消對話框;如果你希望在用戶選擇完文件后自動開始上傳操作,那么可以將 this.startUpload() 操作放在這里。- 傳入?yún)?shù)number of files selected:將返回用戶所選取的文件個(gè)數(shù)。+ uploadStart (file object) - 觸發(fā)條件該事件在文件上傳之前觸發(fā),它用于完成一些準(zhǔn)備工作,比如傳遞參數(shù);負(fù)責(zé)響應(yīng)該事件的句柄函數(shù)可以有2個(gè)返回值(true 或 false)當(dāng)返回值為false時(shí),整個(gè)上傳將被取消;當(dāng)返回值為tru
16、e時(shí)上傳過程繼續(xù)進(jìn)行。而如果返回值為false,則通常是由一個(gè)uploadError事件所導(dǎo)致的。注:官方幫助文檔的原文中對該事件的描述中有這樣一句:“If you return 'true' or do not return any value then the upload proceeds.”,從中可以看到既定的設(shè)計(jì)是當(dāng)不返回任何值的時(shí)候應(yīng)該等同于返回true,但是筆者在開發(fā)中發(fā)現(xiàn)必須明確返回值,否則上傳進(jìn)程將停止響應(yīng),不知是否是一個(gè)bug呢?- 傳入?yún)?shù)file object:文件對象+ uploadComplete (file object)- 觸發(fā)條件在完成一個(gè)上傳
17、周期后(在uploadError 或 uploadSuccess之后),此時(shí)一個(gè)上傳操作已經(jīng)結(jié)束,另一個(gè)上傳操作可以開始了。- 傳入?yún)?shù)file object:文件對象+ uploadProgress (file object, bytes complete, total bytes)- 觸發(fā)條件該事件在整個(gè)文件的上傳過程中定期性的被Flash控件自動觸發(fā),用以幫助開發(fā)者實(shí)時(shí)更新頁面UI來制作上傳進(jìn)度條。注意:該事件在Linux版本的Flash Player中存在問題,目前還無法解決。- 傳入?yún)?shù)file object:文件對象bytes complete:已經(jīng)上傳完畢的文件字節(jié)數(shù)total
18、bytes:文件總體積的字節(jié)數(shù)編輯本段常見錯(cuò)誤 所上傳的文件體積并未超出SWFUpload所設(shè)置的數(shù)值,但為何無法成功上傳? 通常這是由于服務(wù)器端的限制所造成的,以Apache+PHP為例,請修改php.ini中的post_max_size與upload_max_filesize兩項(xiàng)設(shè)置。 在帶有Session驗(yàn)證的網(wǎng)站后臺中SWFUpload無法正常工作? 這是因?yàn)镾WFUpload在上傳時(shí)相當(dāng)于重新開辟了一個(gè)新的Session進(jìn)程,因此無法與原有程序的Session保持一致,這就需要在上傳時(shí)傳遞原有程序的SessionID,根據(jù)它來“找回”其應(yīng)有的Session。詳細(xì)說明文檔:http:/
19、www.v-SWFUpload v2 說明文檔特別提醒由于Flash Player 10的升級,SWFUpload V2.2.0版本前的程序會出現(xiàn)不兼容問題。詳細(xì)見Flash Player 10升級導(dǎo)致SWFUpload程序異常,SWFUpload V2.2.0的文檔已更新,該V2.1.0幫助文檔不再維護(hù)!。 TOCSWFUpload SWFUpload 2 概述 入門 SWFUpload JavaScript 對象 構(gòu)造器 全局變量和常量 instances movieCount QUEUE_
20、ERROR UPLOAD_ERROR FILE_STATUS Default Event Handlers 屬性 customSettings movieName 方法 addSetting (不推薦使用) getSetting (不推薦使用) retrieveSetting (v2.1.0中已刪除) destroy (v2.1.0中新增) displayDebugInfo selectFile selectFiles startUpload
21、160;cancelUpload stopUpload getStats setStats getFile addPostParam removePostParam addFileParam removeFileParam setUploadURL setPostParams setFileTypes setFileSizeLimit setFileUploadLimit setFileQueueLimit setFilePostName
22、0;setUseQueryString setDebugEnabled 事件 flashReady swfUploadLoaded fileDialogStart fileQueued fileQueueError fileDialogComplete uploadStart uploadProgress uploadError uploadSuccess uploadComplete debug SWFUpload 功能對象 Sett
23、ings Object Settings Description File Object Stats Object SWFUpload 插件(未譯) 存在的問題(未譯) SWFUploadSWFUpload最初是由Vinterwebb.se開發(fā)的一個(gè)客戶端的上傳工具. 它結(jié)合了FLASH和JavaScript的功能,以提供一種超越了傳統(tǒng)的瀏覽器中<input type="file" />標(biāo)簽提供的文件上傳功能。 SWFUpload提供的主要功能:在文件選擇對話框中能夠進(jìn)行文件多選 頁
24、面無刷新的上傳 提供上傳進(jìn)度的事件回調(diào),實(shí)時(shí)顯示上傳進(jìn)度 良好的瀏覽器兼容性 采用了命名空間以兼容其它JS的庫 (例如 jQuery, Prototype, 等等) 對FLASH8和FLASH9播放器的支持 SWFUpload背后的設(shè)計(jì)思想和其它基于Flash的上傳工具是不同的。它將瀏覽器的中UI交給開發(fā)人員來控制。開發(fā)人員能夠利用XHTML,CSS,Javascript來定制符合他們網(wǎng)站風(fēng)格的UI上傳元素。然后使用它提供的一組簡單的JS事件來更新上傳狀態(tài),開發(fā)人員能夠利用這些事件來及時(shí)更新頁面中的上傳進(jìn)度UI。 SWFUpload
25、v2SWFUpload v2包含了新的高級功能,改善了穩(wěn)定性,解決了FlashPlayer中的一些bug,并且提供一套有用的插件。新的功能包括: 在文件上傳的同時(shí)能夠發(fā)送額外的POST數(shù)據(jù)(只針對Flash 9 版本) 針對每一個(gè)文件上傳發(fā)送POST/GET數(shù)據(jù) 更直觀的事件回調(diào) 動態(tài)修改實(shí)例設(shè)置 接收服務(wù)端返回的數(shù)據(jù) (只針對Flash 9 版本) 非取消形式的停止文件上傳 自定義上傳的順序 支持單文件、多文件的文件的選擇 文件入隊(duì)數(shù)量,文件上傳數(shù)量和文件大小的限制 更合理地處理0字節(jié)的文件&
26、#160;針對每個(gè)文件在上傳前都提供一個(gè)最后確認(rèn)的時(shí)間回調(diào) 解決了v1.0.2版本中未描述到的關(guān)于Flash的bug 解決的v1.0.2中的bug: 在IE中,刷新的時(shí)候FLASH無法加載(詳細(xì)可見我之前的debug過程) 在FireFox中,如果窗口的滾動條沒有回滾到頂部,那么Flash無法加載 Race-conditions when files are cached 兼容ASP.Net Forms SWFUpload v2 延續(xù)了SWFUpload的設(shè)計(jì)目標(biāo),將UI分離以交給開發(fā)人員控制和后續(xù)擴(kuò)展 概述傳統(tǒng)的
27、HTML上傳標(biāo)準(zhǔn)的HTML上傳表單為用戶提供一個(gè)文本框和按鈕來選擇文件,選中的文件是隨著form表單提交的。整個(gè)文件上傳完成之后,下一個(gè)頁面才會顯示,并且不能對選擇的文件做預(yù)設(shè)的文件檢驗(yàn),例如文件大小限制,文件類型限制。當(dāng)文件上傳時(shí),用戶獲得的可用的反饋信息很少。 傳統(tǒng)的HTML上傳模式十分簡單,線性的,幾乎所有瀏覽器都支持它。 SWFUploadSWFUpload使用一個(gè)隱藏的Flash影片來控制文件的選擇和上傳。JavaScript用來激活文件選擇對話框。此文件選擇對話框是可以設(shè)置允許用戶選擇一個(gè)單獨(dú)的文件或者是多個(gè)文件。選擇的的文件類型也是可以被限制的,因此用戶只能選
28、擇指定的適當(dāng)?shù)奈募?.jgp;*.gif。 當(dāng)選定文件以后,每個(gè)文件都會被驗(yàn)證和處理。當(dāng)Flash上傳文件的時(shí)候,由開發(fā)人員預(yù)定義的Javascript事件會被定時(shí)觸發(fā)以便來更新頁面中的UI,同時(shí)還提供上傳狀態(tài)和錯(cuò)誤信息。 選定的文件的上傳和它所在頁面、表單是獨(dú)立的。每個(gè)文件都是單獨(dú)上傳的,這就保證了服務(wù)端腳本能夠在一個(gè)時(shí)間點(diǎn)更容易地處理單個(gè)文件。雖然Flash提供了上傳服務(wù),但是頁面并不會提交或者重新載入。相比于標(biāo)準(zhǔn)的HTML Form,SWFUpload的使用方式更像是AJAX程序,頁面中的Form會和FLASH控制的文件上傳單獨(dú)處理。 入門SWFUpl
29、oad并不是拖放式的上傳控件,它需要JavaScript和DOM的知識。一些可用的演示展示了它能夠完成什么事情以及它是如何完成這些常見的任務(wù)。 SWFUpload由4部分組成:初始化和設(shè)置 JavaScript 庫: SWFUpload.js Flash控制元素: SWFUpload_f8.swf 或者 SWFupload_f9.swf 事件處理 使用SWFUpload遇到的多數(shù)問題是由不正確地設(shè)置或者定義了糟糕的處理事件引起的。初始化和設(shè)置SWFpload必須在頁面中初始化,一般可以在window.onload事件中完成此操作。它的構(gòu)造函數(shù)需
30、要一個(gè)Object類型的設(shè)置對象。這個(gè)設(shè)置對象一般是一個(gè)直接定義的Object類型變量,直接傳遞給SWFUpload的構(gòu)造函數(shù)。初始化的SWFUpload對象的引用需要保留下來,因?yàn)楫?dāng)顯示文件選擇對話框和啟動文件上傳的時(shí)候需要這個(gè)實(shí)例的引用。 例如:用直接定義的Object類型變量設(shè)置初始化SWFUpload對象var swfu;window.onload = function () swfu = new SWFUpload(upload_url : "/upload.php",flash_url : "ht
31、tp://swfupload_f9.swf",file_size_limit : "20480"); 例如:用存儲在變量中的設(shè)置對象初始化SWFUpload對象var swfu;window.onload = function () var settings_object = upload_url : "/upload.php",flash_url : "/swfupload_f9.swf"
32、,file_size_limit : "20480"swfu = new SWFUpload(settings_object); JavaScript 庫該JavaScript庫文件(swfupload.js)應(yīng)該包含在需要上傳功能的頁面中。它對 Flash Player 8 和 Flash Player 9 SWFUpload 版本都是兼容、可用的。當(dāng)SWFUpload創(chuàng)建完成并能訪問它的一系列功能時(shí),開發(fā)人員可以來控制此實(shí)例。 例如: 添加SWFUpload.js到頁面中<script type="text/javascript&qu
33、ot; src="/swfupload.js"></script>例如: 根據(jù)需要的設(shè)置來初始化SWFUpload,同時(shí)把它的seleteFiles方法綁定到一個(gè)按鈕的Click事件上。var swfu = new SWFUpload(upload_url : "/upload.php",flash_url : "/swfupload_f9.swf");document.getEl
34、ementByIdx_x("BrowseButton").onclick = function () swfu.selectFiles(); ;Flash 控制元素SWFUpload JavaScript庫動態(tài)加載Flash控制元素(swfupload_f8.swf/swfupload_f9.swf)。該Flash控制元素有兩個(gè)版本。swfupload_f8.swf支持Flash Player8以及更高版本。它在提供了更好的兼容性同時(shí)犧牲了一些功能。swfupload_f9.swf支持Flash Player9.0.28以及更高版本。它在提供了額外的功能同時(shí)犧牲了使用Fla
35、sh Player8的用戶。 Flash控制元素的文件地址在初始化的時(shí)候就應(yīng)該在SWFUpload設(shè)置對象中定義。Flash控制元素是一個(gè)不可見的的Flash影片,它提供了文件瀏覽、檢驗(yàn)和上傳功能。它不提供任何用戶界面組件,但它會在需要時(shí)候通過與Javascript通信來通知瀏覽器處理更新。 事件處理開發(fā)人員必須定義一系列JavaScript函數(shù)來處理SWFUpload事件回調(diào),當(dāng)一些不同的重要事件發(fā)生的時(shí)候,這些函數(shù)會被觸發(fā)。 通過處理SWFUpload的事件,開發(fā)人員能夠提供關(guān)于上傳進(jìn)度、出錯(cuò)信息以及上傳完成等的信息反饋。 例如: swfupload
36、的處理事件和初始化/ uploadStart處理事件。該函數(shù)變量在設(shè)置對象中指定給了upload_start_handler屬性。var uploadStartEventHandler = function (file) var continue_with_upload = true;return continue_with_upload;/uploadSuccess處理事件。 該函數(shù)變量在設(shè)置對象中指定給了upload_success_handler屬性。var uploadSuccessEventHandler = function (file, server_data) alert(&q
37、uot;The file " + + " has been delivered to the server.");alert("The server responded with " + server_data);/創(chuàng)建SWFUpload實(shí)例,設(shè)置事件回調(diào)函數(shù)var swfu = new SWFUpload(upload_url : "/upload.php",flash_url : "/swfuploa
38、d_f9.swf",file_size_limit : "20480",upload_start_handler : uploadStartEventHandler,upload_success_handler : uploadSuccessEventHandler); SWFUpload JavaScript 對象構(gòu)造函數(shù)SWFUpload(settings object)返回:一個(gè)SWFUpload 實(shí)例var swfupload_instance = new SWFUpload(settings_object); 全局變量和常量SWFUp
39、load定義了一些全局變量和常量,這對SWFUpload的高級應(yīng)用程序和處理錯(cuò)誤都是很有用的,它們都是只讀的。 SWFUpload.instancesSWFUpload.instances是一個(gè)存儲了頁面中所有SWFUpload實(shí)例引用的數(shù)組。Flash播放器依靠這個(gè)數(shù)組來調(diào)用正確的處理事件。該數(shù)組是由movieName屬性來索引的關(guān)聯(lián)數(shù)組。例如:SWFUpload.instances.SWFUpload_0訪問的是第一個(gè)實(shí)例引用。 注意: SWFUpload.instances不是一個(gè)真正的JavaScript數(shù)組,實(shí)際上它是一個(gè)對象(關(guān)聯(lián)數(shù)組)。SWFUpload.mo
40、vieCountSWFUpoad.movieCount是一個(gè)全局變量,用于記錄頁面中的SWFUpload實(shí)例個(gè)數(shù),同時(shí)確保給每一個(gè)Flash影片分配一個(gè)惟一的movieName。 SWFUpload.QUEUE_ERRORSWFUpload.QUEUE_ERROR是一個(gè)包含了Queue Error錯(cuò)誤碼的JS對象,一般用它來查看fileQueueError事件的中發(fā)送的錯(cuò)誤碼,以確定fileQueueError的具體類型。 SWFUpload.QUEUE_ERROR = QUEUE_LIMIT_EXCEEDED : -100,FILE_EXCEEDS_SIZE_LIMIT
41、: -110,ZERO_BYTE_FILE : -120,INVALID_FILETYPE : -130;SWFUpload.UPLOAD_ERRORSWFUpload.UPLOAD_ERROR是一個(gè)包含了Upload Error錯(cuò)誤碼的JS對象,一般用它來查看uploadError事件的中發(fā)送的錯(cuò)誤碼,以確定uploadError的具體類型。 SWFUpload.UPLOAD_ERROR = HTTP_ERROR : -200,MISSING_UPLOAD_URL : -210,IO_ERROR : -220,SECURITY_ERROR : -230,UPLOAD_LIMIT_E
42、XCEEDED : -240,UPLOAD_FAILED : -250,SPECIFIED_FILE_ID_NOT_FOUND : -260,FILE_VALIDATION_FAILED : -270,FILE_CANCELLED : -280,UPLOAD_STOPPED : -290;SWFUpload.FILE_STATUSSWFUpload.FILE_STATUS是一個(gè)包含F(xiàn)ile Status狀態(tài)碼的JS對象。它可以用來檢測File對象中的file status屬性,以確定文件的狀態(tài)。SWFUpload.FILE_STATUS = QUEUED : -1,IN_PROGRESS :
43、-2,ERROR : -3,SUCCESS : -4,CANCELLED : -5;默認(rèn)處理事件SWFUpload庫提供了一系列默認(rèn)的處理事件。當(dāng)開發(fā)人員沒有自定義處理事件時(shí),SWFUpload庫將調(diào)用這些默認(rèn)的處理事件。因此當(dāng)自定義事件時(shí),不要把這些默認(rèn)的處理事件覆蓋了。自定義事件是需要在settings對象中被單獨(dú)定義的。屬性下面這個(gè)列表是相關(guān)屬性的具體描述。使用其它屬性或者對只讀屬性進(jìn)行了寫的操作都會造成SWFUpload出現(xiàn)問題。 customSettings (可讀/可寫)customSettings屬性是一個(gè)空的JavaScript對象,它被用來存儲跟SWFUpload實(shí)
44、例相關(guān)聯(lián)的數(shù)據(jù)。它的內(nèi)容可以使用設(shè)置對象中的custom_settings屬性來初始化。 注意:一些插件使用customSettings對象來實(shí)現(xiàn)它們的內(nèi)部控制。當(dāng)重寫整個(gè)customSettings對象的時(shí)候需要?jiǎng)?wù)必小心。 例如:/ 初始化包含自定義設(shè)置的SWFUpload對象var swfu = new SWFUpload(custom_settings : custom_setting_1 : "custom_setting_value_1",custom_setting_2 : "custom_setting_value_2"
45、,custom_setting_n : "custom_setting_value_n",);swfu.customSettings.custom_setting_1 = "custom_setting_value_1" / 更改一個(gè)存在的自定義設(shè)置swfu.customSettings.myNewCustomSetting = "new custom setting value" / 添加一個(gè)新的自定義設(shè)置/用一個(gè)全新的對象重寫customSettingsswfu.customSettings = custom_setting_A
46、: "custom_setting_value_A",custom_setting_B : "custom_setting_value_B"movieName(只讀)包含了該SWFUpload實(shí)例的惟一影片名字。該值被傳遞給Flash,用來完成Flash和JavaScript的通信。該值被用來索引實(shí)例在SWFUpload.instances數(shù)組中的位置。 方法下面的方法用來操作SWFUpload。其中有些方法可以跟元素(例如,按鈕)的點(diǎn)擊事件綁定,其它的方法供SWFUpload內(nèi)部處理事件中調(diào)用。 object addSetting(
47、setting_name, value, default_value)不贊成使用V2.1.0源碼中注釋:addSetting和getSetting已經(jīng)不再被使用了,只是考慮到兼容V2版本,才繼續(xù)保留在庫中。object getSetting(setting_name)不贊成使用V2.1.0源碼中注釋:addSetting和getSetting已經(jīng)不再被使用了,只是考慮到兼容V2版本,才繼續(xù)保留在庫中。object retrieveSetting(setting_value, default_value)v2.1.0中已被刪除bool destroy()v2.1.0中新增用于將一個(gè)SWFUplo
48、ad實(shí)例從頁面中銷毀。不但刪除DOM中的Flash元素,同時(shí)還刪除SWFUpload實(shí)例的相關(guān)引用。成功返回true,失敗返回false。這個(gè)方法還沒有針對插件做兼容測試,可能會有不兼容問題。(尤其是SWFObject插件)提醒SWFUpload在v2.1.0中改寫了Flash插入的代碼,V2版中使用SWFObject插入Flash會造成IE的一個(gè)刷新BUG。 void displayDebugInfo()調(diào)用debug方法,在Debug輸出框中顯示SWFUpload實(shí)例的設(shè)置信息,如果設(shè)置中的debug屬性是true,那么默認(rèn)是在實(shí)例化完成以后自動調(diào)用此方法。void select
49、File()彈出flash的文件選擇對話框,只能選擇單個(gè)文件。void selectFiles()彈出flash的文件選擇對話框,可一次性選擇多個(gè)文件。void startUpload(file_id)指定file_id來啟動該文件的上傳,如果file_id被忽略了,那么默認(rèn)開始上傳第一個(gè)文件。void cancelUpload(file_id)指定file_id來退出文件的上傳,從上傳隊(duì)列中刪除該文件。如果忽略file_id,那么默認(rèn)文件上傳隊(duì)列中的第一個(gè)文件將被退出上傳。如果取消的文件是正在上傳,那么會觸發(fā)uploadError事件。void stopUpload()如果當(dāng)前有文件上傳,那
50、么停止上傳,并且將文件還原到上傳隊(duì)列中。停止了正在上傳的文件,uploadError事件會被觸發(fā)。如果此時(shí)沒有正在上傳文件,那么不會發(fā)生任何操作,不會觸發(fā)任何事件。object getStats()獲取當(dāng)前狀態(tài)的統(tǒng)計(jì)對象,具體見Stats Object。void setStats(stats_object)Stats統(tǒng)計(jì)對象是可以被修改的。如果你希望在上傳完畢之后修改上傳成功或者上傳失敗的統(tǒng)計(jì)數(shù)目時(shí),那么可以使用該方法。提醒:可供修改的屬性只有successful_uploads ,upload_errors,upload_cancelled,queue_errors,并且值必須是Number
51、類型。object getFile(file_id|index)根據(jù)file_id或者index來獲取文件隊(duì)列中的文件對象。file_id是文件對象中的id屬性,index是文件對象中的index屬性。傳遞Number類型的參數(shù)會被認(rèn)定為index,那么返回的是文件隊(duì)列(所有嘗試入隊(duì)文件,包括因沒有通過文件大小、類型檢測等而觸發(fā)fileQueueError,沒有成功加入文件上傳隊(duì)列的文件對象)數(shù)組中下標(biāo)為index的文件對象。如果index不在隊(duì)列數(shù)組范圍內(nèi),那么返回null。傳遞非Number類型的參數(shù)會被認(rèn)定為file_id,那么返回的是文件上傳隊(duì)列(通過文件檢測,準(zhǔn)備好進(jìn)行上傳的文件)數(shù)
52、組中id為file_id的文件對象。如果參數(shù)為空,或者沒有此id的文件對象,那么返回文件等待隊(duì)列中的第一個(gè)文件對象,如果第一個(gè)文件對象為空,那么返回null。void addPostParam(name, value)給設(shè)置中的post_params對象添加值對,當(dāng)文件上傳的時(shí)候,這個(gè)值對會一同在POST中發(fā)送。如果設(shè)置的時(shí)候,post_params中以及存在該值,那么實(shí)際上會被覆蓋。void removePostParam(name)從設(shè)置中的post_params對象中刪除name指定的屬性,當(dāng)文件上傳的時(shí)候,刪除的值對不會繼續(xù)在POST中發(fā)送。bool addFileParam(file
53、_id, name, value)為指定file_id的特定文件對象添加POST值對,如果添加的name屬性已經(jīng)存在,那么原值會被覆蓋。如果需要給所有文件對象添加POST值,那么可以使用設(shè)置中的post_params屬性。bool removeFileParam(file_id, name)刪除由addFileParam添加的POST值對.如果POST設(shè)置中沒有此屬性,那么返回false。void setUploadURL(url)動態(tài)修改設(shè)置中的upload_url屬性。void setPostParams(param_object)動態(tài)修改post_params,以前的屬性全部被覆蓋。pa
54、ram_object必須是一個(gè)JavaScript的基本對象,所有屬性和值都必須是字符串類型。void setFileTypes(types, description)動態(tài)修改設(shè)置中的file_types 和 file_types_description,兩個(gè)參數(shù)都是必須的。void setFileSizeLimit(file_size_limit)動態(tài)修改設(shè)置中的file_size_limit,此修改針對之后的文件大小過濾有效。file_size_limit參數(shù)接收一個(gè)單位,有效的單位有B、KB、MB、GB,默認(rèn)單位是KB。例如: 2147483648 B, 2097152, 2097152
55、KB, 2048 MB, 2 GBvoid setFileUploadLimit(file_upload_limit)動態(tài)修改設(shè)置中的file_upload_limit,特殊值0表示無限制。提醒:這里限制的是一個(gè)SWFUpload實(shí)例控制上傳成功的文件總數(shù)。void setFileQueueLimit(file_queue_limit)動態(tài)修改設(shè)置中的file_queue_limit,特殊值0表示無限制。提醒:這里限制的是文件上傳隊(duì)列中(入隊(duì)檢測通過的文件會添加到上傳隊(duì)列等待上傳)允許排隊(duì)的文件總數(shù)。void setFilePostName(file_post_name)動態(tài)修改設(shè)置中的fil
56、e_post_name,注意在Linux環(huán)境下,F(xiàn)lashPlayer是忽略此設(shè)置的。void setUseQueryString(use_query_string)動態(tài)修改設(shè)置中的use_query_string,設(shè)置為true的時(shí)候,SWFUpload以GET形式發(fā)送數(shù)據(jù),如果為false,那么就以POST發(fā)送數(shù)據(jù)。void setDebugEnabled(debug_enabled)啟動/禁止 debug輸出,debug_enabled參數(shù)是一個(gè)布爾值。事件SWFUpload在操作過程中會觸發(fā)一系列事件,開發(fā)者可以利用這些回調(diào)的處理事件來控制UI,控制操作或者報(bào)告錯(cuò)誤。所有的事件都是在S
57、WFUpload實(shí)例的上下文中調(diào)用的,因此在這些回調(diào)的事件中使用this能夠直接訪問到該觸發(fā)該事件的實(shí)例對象。flashReady()該事件函數(shù)是內(nèi)部事件,因此不能被重寫。當(dāng)SWFupload實(shí)例化,加載的FLASH完成所有初始化操作時(shí)觸發(fā)此事件。提醒:對應(yīng)設(shè)置中的自定義事件swfupload_loaded_handlerswfUploadLoaded()V2.1.0版本中已經(jīng)刪除了此事件fileDialogStart()此事件在selectFile或者selectFiles調(diào)用后,文件選擇對話框顯示之前觸發(fā)。只能同時(shí)存在一個(gè)文件對話框。提醒:對應(yīng)設(shè)置中的自定義事件file_dialog_st
58、art_handlerfileQueued(file object)當(dāng)文件選擇對話框關(guān)閉消失時(shí),如果選擇的文件成功加入上傳隊(duì)列,那么針對每個(gè)成功加入的文件都會觸發(fā)一次該事件(N個(gè)文件成功加入隊(duì)列,就觸發(fā)N次此事件)。提醒:對應(yīng)設(shè)置中的自定義事件file_queued_handlerfileQueueError(file object, error code, message)當(dāng)選擇文件對話框關(guān)閉消失時(shí),如果選擇的文件加入到上傳隊(duì)列中失敗,那么針對每個(gè)出錯(cuò)的文件都會觸發(fā)一次該事件(此事件和fileQueued事件是二選一觸發(fā),文件添加到隊(duì)列只有兩種可能,成功和失敗)。文件添加隊(duì)列出錯(cuò)的原因可能有
59、:超過了上傳大小限制,文件為零字節(jié),超過文件隊(duì)列數(shù)量限制,設(shè)置之外的無效文件類型。具體的出錯(cuò)原因可由error code參數(shù)來獲取,error code的類型可以查看SWFUpload.QUEUE_ERROR中的定義。提醒:對應(yīng)設(shè)置中的自定義事件file_queue_error_handler注意:如果選擇入隊(duì)的文件數(shù)量超出了設(shè)置中的數(shù)量限制,那么所有文件都不入隊(duì),此事件只觸發(fā)一次。如果沒有超出數(shù)目限制,那么會對每個(gè)文件進(jìn)行文件類型和大小的檢測,對于不通過的文件觸發(fā)此事件,通過的文件成功入隊(duì)。 fileDialogComplete(number of files selected, number of files queued)當(dāng)選擇文件對話框關(guān)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年甘肅隴南金徽酒股份有限公司招聘199人筆試參考題庫附帶答案詳解
- 育肥豬飼料知識培訓(xùn)課件
- 2025年中國鐵道出版社有限公司招聘(14人)筆試參考題庫附帶答案詳解
- 2025山西太原西山生態(tài)文旅投資建設(shè)有限公司及子公司招聘13人筆試參考題庫附帶答案詳解
- 2025中國冶金地質(zhì)總局所屬在京單位高校畢業(yè)生招聘23人筆試參考題庫附帶答案詳解
- 新編大學(xué)英語(第四版)綜合教程B4U6(浙江海洋大學(xué)版)課件 B4U6 Journeys in medicine Further development
- 2025年上半年六安市霍邱縣人民法院招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年保定市高陽縣招考政法機(jī)關(guān)輔助工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年佛山市南海區(qū)里水鎮(zhèn)政府和村事業(yè)單位招43人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年亳州市屬事業(yè)單位招考及易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 森林專業(yè)撲火隊(duì)培訓(xùn)課件
- 學(xué)校體育學(xué)第八章課余體育鍛煉課件
- “一帶一路”視域下印度尼西亞中資企業(yè)所得稅返還案例解析
- 職業(yè)健康監(jiān)護(hù)評價(jià)報(bào)告編制指南
- 管理ABC-干嘉偉(美團(tuán)網(wǎng)COO)
- 社會工作綜合能力初級講義課件
- 兒童流感的防治和預(yù)防措施
- 工業(yè)旅游策劃案例
- 智能制造企業(yè)制造成熟度能力域打分表
- 《員工保密協(xié)議書》電子版正規(guī)范本(通用版)
- 城市災(zāi)害學(xué)課件-地質(zhì)災(zāi)害(1)課件
評論
0/150
提交評論