axios({
method: "post",
url: "",
responseType: 'blob'
}).then((res) => {
if(0 < res.data.size) {
const link = document.createElement('a');
// fileType = application/vnd.ms-excel:表格
// fileType = application/zip:压缩文件
// fileType = image/jpeg:图片
const blob = new Blob([res.data], {type: fileType})
// 前台不设置名字则从后台获取
if(!fileName) {
//从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xx.docx") 设置的文件名;
let contentDisposition = res.headers['content-disposition'];
if (contentDisposition) {
let fileNameReg = new RegExp("filename=([^;]+\\.[^\.;]+);*");
fileName = fileNameReg.exec(contentDisposition)[1].replace(/^["](.*)["]$/g, "$1");
}
}
link.style.display = 'none';
link.download = decodeURI(fileName); //下载后文件名
link.href = window.URL.createObjectURL(blob); //创建下载的链接
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(window.URL.createObjectURL(blob));
}
});
下载后台的二进制文件
于 2022-02-14 18:30:00 首次发布