前端将后端返回的数据流生成文件并下载

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* 下载服务器上文件的方法
* @param {String} url
* @param {String} name
*/
fileDownload(url, name) {
if (url && name) {
// IE10+ 浏览器特殊处理,IE 这个只有通过 url 的才可以下载,数据流的方式无效
if (navigator.msSaveBlob) {
const fileIPAddress =
process.env.NODE_ENV === "development" ?
"http://xxxxxxxx:8080/prod-api" :
"http://xxxxxxxx/prod-api";
url = url.replace("/ftp-api", fileIPAddress);
window.open(url, "_blank");
} else {
let a = document.createElement("a");
a.href = url;
a.download = name;
a.click();
}
}
}

// 使用示例
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => {
// console.log(reader.result);
fileDownload(reader.result, "test");
};
坚持原创,坚持做个好人!