天天看點

Dojo Toolkit 新增多檔案上傳類dojox.form.FileUploader

轉載時請保留來源:OurJS.cn 原文: http://www.ourjs.cn/show.php?id=464

  Deft 是Dojo Toolkit的一個項目,本文介紹的多檔案上傳功能就是得益于它。

  dojox.form.FileUploader類在頁面内嵌入了一個隐藏的SWF檔案,當你觸發它時,會打開一個對話框,這個對話框支援多檔案選擇和檔案類型過濾。

  如果使用者沒有安裝flash 9,則會顯示一個标準的HTML file input 标簽來代替它的flash界面。這個HTML表單同樣支援多檔案上傳,不過是跟通常的多檔案上傳一樣,多個input标簽,每個标簽隻能選擇一個檔案。

  這個工具的另一個優點是,允許使用者自定義上傳按鈕的樣式。

  dojox.form.FileUploader将會包含在計劃在9月份釋出的Dojo Toolkit v1.2中。

dojox.form.FileUploader

  dojox.form.FileUploader是一個簡單的包裝器類。它接受參數,并做一些偵測,決定是使用dojox.form.FileInputFlash類 還是 dojox.form.FileInputOverlay類。

以下是使用FileUploader的例子:

var uploader = new dojox.form.FileInputFlash({      
        uploadUrl:"http.localHost/FileUpload.php",      
        button:myButton,      
        uploadOnChange: false,      
        selectMultipleFiles: true,      
        fileMask: ["All Images", "*.jpg;*.jpeg;*.gif;*.png"],      
        degradable: true      
});      

這個類隻有一個方法: upload()

有幾個方法:

onChange  - 當檔案被選中時觸發

onProgress  -  提供目前的上傳進度相關資訊(隻支援flash)

onComplete  -  當檔案上傳完畢時觸發

onError  - 發生錯誤時觸發,比如:找不檔案

dojox.form.FileInputFlash(Flash模式)

  FileInputFlash元件與dojox.embed.Flash一起加載。它顯示時大小1px*1px,定位在左上角,是不可見的,當浏覽器需要顯示SWF時才會激活它。在初始化時,FileInputFlash使你的按鈕與SWF内的浏覽器方法連接配接起來,使得點選按鈕就會打開對話架構。

dojox.form.FileInputOverlay(HTML模式)

  dojox.form.FileInputOverlay API跟FileInputFlash 不同。主要有兩點:

  1.  它不會觸發onProgree事件

  2.  當 selectMultipleFiles = true時,使用者不能選擇多個檔案,但是可以通過點選上傳按鈕添加檔案上傳清單。

要了解更多dojox.form.FileUploader,可通路:

http://www.sitepen.com/blog/2008/09/02/the-dojo-toolkit-multi-file-uploader/

http://trac.dojotoolkit.org/browser/deft/trunk/deft

http://archive.dojotoolkit.org/nightly/

轉載時請保留來源:OurJS.cn 原文: http://www.ourjs.cn/show.php?id=464