jQuery File Upload 是一個Jquery文件上傳組件,支持多文件上傳、取消、刪除,上傳前縮略圖預覽、列表顯示圖片大小,支持上傳進度條顯示等,以下就介紹一下該插件的簡單使用
1、需要加載的js文件有
jquery.js,
jquery-ui-widget.js,
jquery.iframe-transport.js,
jquery.fileupload.js
2、upload.js的配置
a、html代碼
<input type="file" id='file'> <input type="button" value="提交" id='submit'>
b、與頁面綁定的javascript代碼
$('#submit').click(function () {
if (currentFile) {
//動態的傳輸參數
currentFile.formData = {id:123};
//進行文件提交
currentFile.submit();
} else {
utils.error('請傳入.xlsx文件');
}
});
c、javascript代碼
$('#file').fileupload({
//type: 文件上傳HTTP請求方式,可以選擇“POST”,“PUT”或者"PATCH",
type: 'POST',
//url:請求發送的目標url,默認為post方式
url: '/admin/qa/upload-file',
//dataType:希望從服務器返回的數據類型,默認"json"
dataType: 'json',
//formData:需要傳輸的參數,這里是靜態的傳輸,如果需要動態的傳輸需要在add這個進程里面進行傳輸
formData: {id: 123},
//autoUpload:是否自動上傳,即當文件放入file之后便自動上傳,默認為true
autoUpload: false,
//acceptFileTypes:允許上傳的的文件類型
acceptFileTypes: /(\.|\/)xlsx$/i,
//maxFileSize: 最大上傳文件大小
maxFileSize: 1,
//minFileSize:最小上傳文件大小,單位B
minFileSize: 1,
//previewMaxWidth : 圖片預覽區域最大寬度
//添加文件后觸發
add: function (ev, data) {
currentFile = null;
$('#result-panel').html('');
var name = data.files[0].name;
if (/(\.|\/)xlsx$/i.test(name)) {
$('#xlsFileShow').html(name);
//data里面包含些方法,如果submit提交這個API,可以根據用戶的需求進行提交
//如果需要動態的傳參可以用data.formData=123,進行傳輸
currentFile = data;
//執行如果不符合的條件
} else {
//執行如果傳入的文件名稱不符合正則匹配的代碼
}
},
//當一個單獨的文件處理隊列結束(完成或失敗時)觸發
progressalways: function (e, data) {
},
//全局上傳處理事件的回調函數,即上傳過程時觸發
progressall: function (e, data) {
//進度條可以用data.loaded與data.total的比進行完成
},
//上傳請求失敗時觸發的回調函數,如果服務器返回一個帶有error屬性的json響應這個函數將不會被觸發
fail: function (e, data) {
},
// 上傳請求成功時觸發的回調函數,如果服務器返回一個帶有error屬性的json響應這個函數也會被觸發
done: function (e, data) {
},
//上傳請求結束時(成功,錯誤或者中止)都會被觸發。
always: function (e, data) {
}
})
具體的官方文檔地址 :
