项目场景:
项目中部分场景需直接下载文件进行预览
例如:点击pdf文件时不打开新标签页 直接下载文件
解决方案
/**
* @description: 文件下载
* @param {Blob} blob 参数1:blob对象
* @param {string} name 参数2:文件名称,包含文件后缀
* @return {*} void
*/
const download = (blob, name) => {
const link = document.createElement('a'); // 创建一个a标签
const url = URL.createObjectURL(blob); // 将blob文件对象通过URL.createObjectURL()方法转为为url
link.href = url; // 为a标签设置href属性,并赋值为url
link.download = name; // 定义下载的文件名,文件名要包含后缀哟!如'导出EXCEL.xlsx'
document.body.appendChild(link); // 把a标签放在body上
link.click(); // 触发a标签点击下载
document.body.removeChild(link); // 在body中移除这个a标签
URL.revokeObjectURL(url); // 释放blob对象
}