天天看點

了解Web Uploader

1.簡介

WebUploader是由Baidu WebFE(FEX)團隊開發的一個簡單的以HTML5為主,FLASH為輔的現代檔案上傳元件。在現代的浏覽器裡面能充分發揮HTML5的優勢,同時又不摒棄主流IE浏覽器,沿用原來的FLASH運作時,相容IE6+,iOS 6+, android 4+。兩套運作時,同樣的調用方式,可供使用者任意選用。

采用大檔案分片并發上傳,極大的提高了檔案上傳效率。

a.分片、并發

分片與并發結合,将一個大檔案分割成多塊,并發上傳,極大地提高大檔案的上傳速度。

當網絡問題導緻傳輸錯誤時,隻需要重傳出錯分片,而不是整個檔案。另外分片傳輸能夠更加實時的跟蹤上傳進度。

b.預覽、壓縮

支援常用圖檔格式jpg,jpeg,gif,bmp,png預覽與壓縮,節省網絡資料傳輸。

解析jpeg中的meta資訊,對于各種orientation做了正确的處理,同時壓縮後上傳保留圖檔的所有原始meta資料。

c.多途徑添加檔案

支援檔案多選,類型過濾,拖拽(檔案&檔案夾),圖檔粘貼功能。

粘貼功能主要展現在當有圖檔資料在剪切闆中時(截屏工具如QQ(Ctrl + ALT + A), 網頁中右擊圖檔點選複制),Ctrl + V便可添加此圖檔檔案。

d.HTML5 & FLASH

相容主流浏覽器,接口一緻,實作了兩套運作時支援,使用者無需關心内部用了什麼核心。

同時Flash部分沒有做任何UI相關的工作,友善不關心flash的使用者擴充和自定義業務需求。

e.MD5秒傳

當檔案體積大、量比較多時,支援上傳前做檔案md5值驗證,一緻則可直接跳過。

如果服務端與前端統一修改算法,取段md5,可大大提升驗證性能,耗時在20ms左右。

f.易擴充、可拆分

采用可拆分機制, 将各個功能獨立成了小元件,可自由搭配。

采用AMD規範組織代碼,清晰明了,友善進階玩家擴充。

http://fex.baidu.com/webuploader/

2.接口說明

Web Uploader的所有代碼都在一個内部閉包中,對外暴露了唯一的一個變量WebUploader,是以完全不用擔心此架構會與其他架構沖突。

内部所有的類和功能都暴露在WebUploader名字空間下面。

Demo中使用的是WebUploader.create方法來初始化的,實際上可直接通路WebUploader.Uploader。

http://fex.baidu.com/webuploader/document.html

延伸閱讀:

http://www.baidu.com/s?wd=webuploader

http://www.sogou.com/web?query=webuploader

https://www.so.com/s?q=webuploader

繼續閱讀