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