轉載時請保留來源: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