WebUploader是由Baidu WebFE(FEX)團(tuán)隊(duì)開發(fā)的一個(gè)簡單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件。在現(xiàn)代的瀏覽器里面能充分發(fā)揮HTML5的優(yōu)勢,同時(shí)又不摒棄主流IE瀏覽器,沿用原來的FLASH運(yùn)行時(shí),兼容IE6+,iOS 6+, android 4+。兩套運(yùn)行時(shí),同樣的調(diào)用方式,可供用戶任意選用。采用大文件分片并發(fā)上傳,極大的提高了文件上傳效率。
項(xiàng)目地址:http://fex.baidu.com/webuploader/
源代碼下載地址:http://fex.baidu.com/webuploader/download.html
效果演示截圖:
分片、并發(fā)
分片與并發(fā)結(jié)合,將一個(gè)大文件分割成多塊,并發(fā)上傳,極大地提高大文件的上傳速度。當(dāng)網(wǎng)絡(luò)問題導(dǎo)致傳輸錯(cuò)誤時(shí),只需要重傳出錯(cuò)分片,而不是整個(gè)文件。另外分片傳輸能夠更加實(shí)時(shí)的跟蹤上傳進(jìn)度。
預(yù)覽、壓縮
支持常用圖片格式j(luò)pg,jpeg,gif,bmp,png預(yù)覽與壓縮,節(jié)省網(wǎng)絡(luò)數(shù)據(jù)傳輸。解析jpeg中的meta信息,對于各種orientation做了正確的處理,同時(shí)壓縮后上傳保留圖片的所有原始meta數(shù)據(jù)。
多途徑添加文件
支持文件多選,類型過濾,拖拽(文件&文件夾),圖片粘貼功能。粘貼功能主要體現(xiàn)在當(dāng)有圖片數(shù)據(jù)在剪切板中時(shí)(截屏工具如QQ(Ctrl + ALT + A), 網(wǎng)頁中右擊圖片點(diǎn)擊復(fù)制),Ctrl + V便可添加此圖片文件。
HTML5 & FLASH
兼容主流瀏覽器,接口一致,實(shí)現(xiàn)了兩套運(yùn)行時(shí)支持,用戶無需關(guān)心內(nèi)部用了什么內(nèi)核。同時(shí)Flash部分沒有做任何UI相關(guān)的工作,方便不關(guān)心flash的用戶擴(kuò)展和自定義業(yè)務(wù)需求。
MD5秒傳
當(dāng)文件體積大、量比較多時(shí),支持上傳前做文件md5值驗(yàn)證,一致則可直接跳過。如果服務(wù)端與前端統(tǒng)一修改算法,取段md5,可大大提升驗(yàn)證性能,耗時(shí)在20ms左右。
易擴(kuò)展、可拆分
采用可拆分機(jī)制, 將各個(gè)功能獨(dú)立成了小組件,可自由搭配。采用AMD規(guī)范組織代碼,清晰明了,方便高級(jí)玩家擴(kuò)展。