需求:从接口下载指定文件,把这个文件再上传到后端。
背景:文件的上传、下载接口都是现有的,原本在pc端下载使用的responseType为blob,在uniapp不支持。如果按照原本的方式请求接口,返回的值会是字符串,不是blob
解决:
使用uni.downloadFile下载文件,获得文件的临时路径,再用uni.uploadFile上传临时路径文件,这样就不需要花里胡哨把文件格式转来转去了。
示例代码:
javascript">uni.downloadFile({
url: 'url', //现有的下载文件接口路径
header: {
Authorization: 'token', //鉴权token,也可添加其他项目需要的请求头
},
success:(downloadRes)=>{
const tempFilePath = downloadRes.tempFilePath; //关键!!获取到了下载文件的临时路径
uni.uploadFile({
url: 'url', //现有的上传文件接口路径
filePath: tempFilePath,
name: "file", //formData中文件的键名
header: {
Authorization: 'token', //鉴权token,也可添加其他项目需要的请求头
},
formData: { //此处添加formData里其他的参数
modelName: "repairProcess-initiate",
relaId: id,
appName: "pvow"
},
success: (uploadFileRes) => {
console.log('success',uploadFileRes);
},
fail: (e) => {
console.log("e",e);
},
});
}
})