vue 以文件流格式下载word
使用方式
接口
export const busiBorrowOrder = () => {
return request({
url: 'xxxxxxxxxxxx',
method: 'get',
responseType: 'blob' // Blob 对象,表示二进制数据
})
}
使用
busiBorrowOrder().then(res => {
const { data } = res;
const blob = new Blob([data]);
let disposition = decodeURI(res.headers["content-disposition"]);
// 从响应头中获取文件名称
let fileName = disposition.substring(
disposition.indexOf("fileName=") + 9,
disposition.length
);
if ("download" in document.createElement("a")) {
// 非IE下载
const elink = document.createElement("a");
elink.download = fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
} else {
// IE10+下载
navigator.msSaveBlob(blob, fileName);
}
});