downloadFile 导出文件函数res 文件,fileName 导出的文件名字
在这里插入代码片
```export function downloadFile(res, fileName) {
if (!res) {
return
}
if (window.navigator.msSaveOrOpenBlob) {
try {
window.navigator.msSaveOrOpenBlob(new Blob([res]), fileName)
} catch (e) {
console.error(e)
}
} else {
const url = window.URL.createObjectURL(new Blob([res]))
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(url)
}
}
在utils 中声明后 直接在页面中调用即可
导出zip文件 res.data 就是返回的流文件
let blob = new Blob([res.data], { type: 'application/zip' })
let url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
link.setAttribute('download', fileName)// 文件名
document.body.appendChild(link)
link.click()
document.body.removeChild(link) // 下载完成移除元素
URL.revokeObjectURL(url) // 释放内存
## 升级 可以根据需要导出的文件类型传对应的type
downloadData (流文件,文件名,导出的文件类型)
downloadData (xxx,xxxx,'application/zip')
downloadData (xxx,xxxx,"text/csv")
下载xlsx 默认为空可不传
export function downloadData (data, filename, type) {
var file = new Blob([data], { type: type });
if (window.navigator.msSaveOrOpenBlob)
// IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else {
// Others
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function () {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}