uniapp uploadFile多文件上传
问题描述:在写app项目得时候遇到使用uni.uploadFile上传多文件,会报错如下
uploadFile:fail undefined is not an object (evaluating 'e.indexOf')
经过短暂的观察,发现是因为上传的文件格式不对,需要对其进行稍微改造如下
uni.chooseImage({
sourceType: sourceType[this.sourceTypeIndex],
sizeType: sizeType[this.sizeTypeIndex],
count: this.count,
success: res => {
const files = res.tempFiles;
let imgArr = [];
for (let i = 0; i < files.length; i++) {
let obj = new Object();
obj.name = 'img' + i;
obj.uri = files[i].path;
imgArr.push(obj);
}
this.params.imageList = this.imageList.concat(res.tempFilePaths);
// 图片上传
uni.uploadFile({
url: FILE_BASE_URL + 'common/uploadMore',
files: imgArr,
fileType: "image",
success: uploadFileRes => {
if (uploadFileRes.statusCode === 200) {
uni.showToast({
title: '上传成功',
icon: 'none'
});
var dataResult = JSON.parse(uploadFileRes.data).data;
dataResult.forEach(res => {
this.params.submitImage.push(res);
});
console.log('要提交图片', this.params.submitImage);
this.$emit('handleUploadSuccess', this.params);
} else {
uni.showToast({
title: '上传失败',
icon: 'none'
});
}
},
fail() {
uni.showToast({
title: '上传失败',
icon: 'none'
});
uni.hideLoading();
}
});
如图所示,关键代码为