后台返回二进制文件,前端点击下载
后台数据以二进制字符串返回
调接口获取二进制字符串
axios.get("/downLoad",{
headers:{
responseType: 'blob'
}
}).then(res=> {
downLoad(res.data, `文件名`)
})
downLoad(data,fileName) {
if (!data) {
return;
}
// 创建一个Blod对象 并且用url指向它
let url = window.URL.createObjectURL(new Blob([data]));
// 创建a标签
let link = document.createElement("a");
// 不让a标签显示
link.style.display = "none";
// a 标签的href 指向之前的url地址
link.href = url;
// 设置下载属性和文件名
link.setAttribute("download", `${fileName}.xlsx`);
// 将a标签插入到页面
document.body.appendChild(link);
// 点击a标签
link.click();
// 下载成功后,移除a标签和url对象
document.body.removeChild(link)
window.URL.revokeObjectURL(url)
}

浙公网安备 33010602011771号