WebUploader是由Baidu WebFE(FEX)團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)簡(jiǎn)單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件。在現(xiàn)代的瀏覽器里面能充分發(fā)揮HTML5的優(yōu)勢(shì),同時(shí)又不摒棄主流IE瀏覽器,沿用原來(lái)的FLASH運(yùn)行時(shí),兼容IE6+,iOS 6+, android 4+。兩套運(yùn)行時(shí),同樣的調(diào)用方式,可供用戶(hù)任意選用。采用大文件分片并發(fā)上傳,極大的提高了文件上傳效率。
這個(gè)插件很好用,功能也比較強(qiáng)大,比ajaxfileupload要強(qiáng)大,可去官方網(wǎng)站下載。
目前項(xiàng)目中只用到了圖片批量上傳功能,官方示例已經(jīng)寫(xiě)的很詳細(xì)了,下面介紹下如何把官方示例遷移到自己的項(xiàng)目中:
// 實(shí)例化 uploader = WebUploader.create({ pick: { id: '#filePicker', label: '點(diǎn)擊選擇圖片' }, formData: { uid: 123 }, dnd: '#dndArea', paste: '#uploader', swf: '../../dist/Uploader.swf', chunked: false, chunkSize: 512 * 1024, server: '../../server/fileupload.php', // runtimeOrder: 'flash', // accept: { // title: 'Images', // extensions: 'gif,jpg,jpeg,bmp,png', // mimeTypes: 'image/*' // }, // 禁掉全局的拖拽功能。這樣不會(huì)出現(xiàn)圖片拖進(jìn)頁(yè)面的時(shí)候,把圖片打開(kāi)。 disableGlobalDnd: true, fileNumLimit: 300, fileSizeLimit: 200 * 1024 * 1024, // 200 M fileSingleSizeLimit: 50 * 1024 * 1024 // 50 M });
1、server 修改為自己的后臺(tái)處理類(lèi) 通過(guò) HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; request.Files的方式獲取插件上傳的圖片。
2、示例程序默認(rèn)是啟用壓縮的,這個(gè)可以設(shè)置,當(dāng)圖片大于多少是可以自動(dòng)壓縮圖片的,如果不需要壓縮,則需要再初始化的時(shí)候添加 compress:false, 屬性
3、
accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/*' },
官方上傳圖片的示例不知道什么原因把圖片篩選這個(gè)注釋掉了,如果想上傳的文件只能選擇圖片,則需要去掉注釋
4、增加了對(duì)圖片像素大小的判斷,自己用了uploadAccept 方法,是把圖片提交上去了之后再后臺(tái)進(jìn)行判斷的,(不知是否有更好的辦法)因?yàn)椴寮旧淼膄ile類(lèi)是可以處理文件的,所以并沒(méi)有單獨(dú)獲取像素的屬性,示例:
uploader.on('uploadAccept', function (object, ret) { var resJson = $.parseJSON(ret._raw); if (resJson.result == "error") { alert(object.file.name + "象素太低,請(qǐng)檢查上傳!"); return false; } });
該方法返回false的時(shí)候,會(huì)導(dǎo)致圖片上傳失敗,所以后臺(tái)判斷像素后通過(guò)后臺(tái)返回的狀態(tài)來(lái)改變圖片上傳的狀態(tài)。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com