1. 定義一個通用的js
/* 函數描述:作爲上傳文件時遞歸上傳的函數體體;
* 參數描述:
* url是上傳地址
* filePaths是文件路徑數組
* requestHeader是頭部
* fileParams是參數
* successUp是成功上傳的個數->0
* failUp是上傳失敗的個數->0
* count是文件路徑數組的指標->0
* length是文件路徑數組的長度
*/
function djUploadImgs(url, filePaths, requestHeader, fileParams, successUp, failUp, count, length, onSuccess, onFail, onAfail){
var that = this;
wx.uploadFile({
url: url,
filePath: filePaths[count],
header: requestHeader,
name: 'file',
formData: fileParams,
success: function (res) {
var jsonDict = JSON.parse(res.data);
console.log('====', jsonDict);
if (res.statusCode == 200) {
successUp++;
onSuccess(jsonDict);
}
else{
onFail(jsonDict);
}
},
fail: function (res) {
failUp++;
onAfail(res.data);
},
complete: function () {
count++;
if (count == length) { //上傳完畢
console.log('總共' + successUp + '張上傳成功,' + failUp + '張上傳失敗!');
}
else { //遞歸調用djUploadImgs函數
that.djUploadImgs(url, filePaths, requestHeader, fileParams, successUp, failUp, count, length, onSuccess, onFail, onAfail);
}
}
})
}
2. 使用
var url = "你要上傳的url";
var headers = {"content-type": "multipart/form-data"};
var paramData = {}; //上傳參數
var tempFilePaths = that.data.uploadImages; //選擇好的圖片
var successUp = 0; //成功
var failUp = 0; //失敗
var length = tempFilePaths.length; //總數
var count = 0; //第幾張
//調用已經寫好的
that.djUploadImgs(url, tempFilePaths, headers, paramData, successUp, failUp, count, length, function (successDict){
},
function (failDict) {
},
function (errorDict){
})