前端在开发下载功能时,获取到后端返回的二进制流数据,如下所示
此时,我们可以这样处理!直接上图》(看图更方便理解,下面可以粘取代码,喜欢记得点个赞呦~)
代码如下:
let config = {
responseType: "blob",
headers: {
"Content-Type": "application/json",
},
};
axios.post("/stockQuery/stockDownload", params, config).then((res) => {
const blob = new Blob([res.data]);
const fileName = "库存列表.xls";
const linkNode = document.createElement("a");
linkNode.download = fileName; //a标签的download属性规定下载文件的名称
linkNode.style.display = "none";
linkNode.href = URL.createObjectURL(blob); //生成一个Blob URL
document.body.appendChild(linkNode);
linkNode.click(); //模拟在按钮上的一次鼠标单击
URL.revokeObjectURL(linkNode.href); // 释放URL 对象
document.body.removeChild(linkNode);
});
思路及部分代码来源暂时找不到了,侵删~~