下面方法适用于小程序,也可以把接口改为适用于其他平台的
function uploadFile(newUrl){ // newUrl是本地文件的 tmp 地址
let token = wx.getStorageSync('Token')
let formData = new FormData();
formData.appendFile("file", newUrl);
const data = formData.getData();
return new Promise((resolve,reject)=>{
wx.request({
url:'',//替换为自己的接口请求地址
method: 'POST',
header: {
Authorization:token,
'content-type': data.contentType
},
// timeout:20000,//自己决定是否设置接口超时时间
data: data.buffer,
success(res) {
resolve(res.data)
},
fail(res){
wx.showToast({
"title": res.errMsg+"请求超时!",
"icon": "none"
});
reject('请求超时')
}
});
})
}
const submit=(files)=>{
const promiseFiles=[]
files.forEach(ele=>{
promiseFiles.push(uploadFile(ele))
})
Promise.allSettled(promiseFiles).then(res=>{
//此处可以返回上传情况
})
}
小程序中formData方法需要自己写或者网上找,聪明的开发者已经去百度了哈