[js进阶]js实现文件流下载文件
/**
* desc: 文件下载 导出结果处理 从header中提取文件名称
*/
export function handleDownLoadFileFromHeader(response) {
const names = response.headers['content-disposition'];
// 'attachment; filename='
const str = names.replace(' ', '');
const arr = str.split(';');
let fileName = '';
arr.some(s => {
if (s.indexOf('filename') != -1) {
fileName = s.split('=')[1];
}
return s.indexOf('filename') != -1;
});
let src = window.URL.createObjectURL(response.data);
if (src) {
let link = document.createElement('a');
link.style.display = 'none';
link.href = src;
link.setAttribute('download', decodeURI(decodeURI(fileName)));
document.body.appendChild(link);
link.click();
document.body.removeChild(link); //下载完成移除元素
window.URL.revokeObjectURL(src); //释放掉blob对象
}
}