//微信 上传文件方法 需要传入3个参数 count是上传文件的数量 extension 参数是用来指定文件类型的过滤条件,formData是上传文件的数据,需要返回所有上传的文件
export function wx_chooseMessageFile(type, count, extension, formData) {
return new Promise((resolve, reject) => {
uni.chooseMessageFile({
type: type,
count: count,
extension: extension,
success: function(res) {
console.log("选择的文件是", res);
let temp_file_arr = res.tempFiles;
const promises = temp_file_arr.map(file=>{
return new Promise((resolve,reject)=>{
uni.uploadFile({
url: process.env.VUE_APP_BASE_URL + "/file/add_file",
filePath: file.path,
name: "file",
header: {
'system-type': 3,
'Authorization': uni.getStorageSync('token') ? "Bearer " + uni
.getStorageSync('token') : ''
},
formData: formData,
success(uploadFileRes) {
if (uploadFileRes.statusCode == 200) {
let data_ = JSON.parse(uploadFileRes.data)
data_.data.file_name = file.name;
// 将请求成功的结果返回
resolve(data_.data)
} else {
uni.showToast({
title: uploadFileRes.data.msg,
icon: 'none'
})
}
},
fail: (err) => {
reject(err);
}
})
})
})
// prmose.all等待所有上传请求都完成时才返回
Promise.all(promises).then(results=>{
if(count==1&&results[0]){
resolve(results[0]);
}else if(count>1){
resolve(results);
}
}).catch(error=>{
return null;
reject(error);
})
},
fail: (err) => {
reject(err);
}
})
})
}
对于微信小程序ios上传文件时部分格式文件未找到 去掉文件格式前面的 . 就可以