WebUploader是由Baidu WebFE(FEX)團隊開發的一個簡單的以HTML5為主,FLASH為輔的現代文件上傳組件。在現代的浏覽器裡面能充分發揮HTML5的優勢,同時又不摒棄主流IE浏覽器,沿用原來的FLASH運行時,兼容IE6+,iOS 6+, android 4+。兩套運行時,同樣的調用方式,可供用戶任意選用。采用大文件分片並發上傳,極大的提高了文件上傳效率。
這個插件很好用,功能也比較強大,比ajaxfileupload要強大,可去官方網站下載。
目前項目中只用到了圖片批量上傳功能,官方示例已經寫的很詳細了,下面介紹下如何把官方示例遷移到自己的項目中:
// 實例化
uploader = WebUploader.create({
pick: {
id: '#filePicker',
label: '點擊選擇圖片'
},
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/*'
// },
// 禁掉全局的拖拽功能。這樣不會出現圖片拖進頁面的時候,把圖片打開。
disableGlobalDnd: true,
fileNumLimit: 300,
fileSizeLimit: 200 * 1024 * 1024, // 200 M
fileSingleSizeLimit: 50 * 1024 * 1024 // 50 M
});
1、server 修改為自己的後台處理類 通過 HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; request.Files的方式獲取插件上傳的圖片。
2、示例程序默認是啟用壓縮的,這個可以設置,當圖片大於多少是可以自動壓縮圖片的,如果不需要壓縮,則需要再初始化的時候添加 compress:false, 屬性
3、
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
},
官方上傳圖片的示例不知道什麼原因把圖片篩選這個注釋掉了,如果想上傳的文件只能選擇圖片,則需要去掉注釋
4、增加了對圖片像素大小的判斷,自己用了uploadAccept 方法,是把圖片提交上去了之後再後台進行判斷的,(不知是否有更好的辦法)因為插件本身的file類是可以處理文件的,所以並沒有單獨獲取像素的屬性,示例:
uploader.on('uploadAccept', function (object, ret) {
var resJson = $.parseJSON(ret._raw);
if (resJson.result == "error") {
alert(object.file.name + "象素太低,請檢查上傳!");
return false;
}
});
該方法返回false的時候,會導致圖片上傳失敗,所以後台判斷像素後通過後台返回的狀態來改變圖片上傳的狀態。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。