需求:从接口下载指定文件,把这个文件再上传到后端。
背景:文件的上传、下载接口都是现有的,原本在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);},});}})