方法封装:util.js
/**
* 把二进制文件保存到本地
*/
export function exportFile(file, name) {
let url = window.URL.createObjectURL(new Blob([file]));
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", name);
document.body.appendChild(link);
link.click();
document.body.removeChild(link); // 下载完成移除元素
window.URL.revokeObjectURL(url); // 释放掉blob对象
}
请求接口:在请求头加responseType: "arraybuffer"
export function demoApi(data) {
return http({
url: "/path/export",
method: "post",
responseType: "arraybuffer",
data,
});
}
方法调用:
demoApi(data).then(res=>{
if(res.staus==200){
let fileName = "";
let contentDisposition = res.headers["content-disposition"];
if (contentDisposition) {
fileName = window.decodeURI(
res.headers["content-disposition"].split("=")[1],
"UTF-8"
);//取文件名
}
exportFile(res.data, fileName);
}
})
vue下载保存二进制文件vue下载保存二进制文件的方法。请求头中需要加数据类型设置,收到二进制数据后进行数据转换保存http://www.luckysir.cn/?p=1808