上传文件并且携带文件以外的参数
接口
// 文件上传接口
export const uploadFile = request({
url: `xxxxxxxxx,
method: 'post',
headers: {
'Content-Type': 'multipart/form-data'
},
});
调用接口之前
let formData = new FormData();
let reqStr = {
//额外携带的参数
}
reqStr = JSON.stringify(reqStr)
formData.append('file', this.fileList.raw);
formData.append('reqStr', reqStr);
uploadFile(formData)
下载文件
接口的 responseType改为blob
拿到接口返的数据后
const blob = new Blob([res.data], { type: 'application/octet-stream' });
// const disposition = decodeURI(res.headers['content-disposition']); // 获取filename
// const fileName = disposition.substring(disposition.indexOf('filename=') + 10, disposition.length - 1);
const Link = document.createElement('a');
const href = window.URL.createObjectURL(blob); // 创建下载的链接
Link.href = href;
Link.download = `${item.filename}.${item.filetype}`; // 下载后文件名
document.body.appendChild(Link);
Link.click(); // 点击下载
document.body.removeChild(Link); // 下载完成移除元素
window.URL.revokeObjectURL(href); // 释放掉blob对象