[js进阶]js实现文件流下载文件

时间:2025-04-04 20:09:13
/** * 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对象 } }