axios文件下载文件

POST方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
request
.post(
api.UpdateAnnexInfo, //url链接
qs.stringify({ annexNo: annex.annexNo, }),//参数
{ responseType: "arraybuffer", } //文件流格式,必须要设置的
)
.then((res) => {
if (res.byteLength != 0) { //判断是否有文件
var blob = new Blob([res], { //这里的res是传过来的文件,有可能是res,或者是res.data等,根据自己后端传过来的值而自己适应
type: "multipart/form-data", //允许多种文件形式存在
});
var downloadElement = document.createElement("a"); //创建一个临时的dom
var href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = annex.annexName; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
annex.downloadCnt++; //文件下载数量加1
}
});