通过接口返回流的方式,我们可以给后台传参数(token等),不解释,直接上代码
function downImgFile(file_name, content){
const csvData = new Blob([content]);
// for IE
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, file_name);
}
// for Non-IE (chrome, firefox etc.)
else {
let a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
const url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = file_name;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
}
//------------
//res.data此物为后台接口返回的流
const fileName = decodeURI(res.headers['content-disposition'].split('=')[1]);
downImg(fileName, res.data)
如果你出现下载完成后,内容出现乱码,请在请求接口添加responseType: ‘arraybuffer’,或者responseType:‘blob’