文件下载post请求,返回文件流转换zip,

Posted boshow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件下载post请求,返回文件流转换zip,相关的知识,希望对你有一定的参考价值。

技术图片

 

 最近一个需求是批量下载文件,最后打包成zip包,post请求,

因为是文件流下载,所以在取后台数据的时候,要多传递一个【responseType: ‘blob’】这个参数

 1 download() {
 2       this.tableLoading = true;
 3       console.log(this.selectionLen);
 4       let docIds = [];
 5       this.selectionLen.forEach((item, index) => {
 6         docIds.push(item.id);
 7       });
 8       let params = {
 9         zipName: "downloadFile",
10         ids: docIds,
11         company: this.userinfo.account_name
12       };
13 
14       axios({
15         // 用axios发送post请求
16         method: "post",
17         url:
18           "http://xxx/pm/project/deliverable/download/zip", // 请求地址
19         data: params, // 参数
20         headers: {
21           "content-type": "application/json; charset=utf-8"
22         },
23         responseType: "blob" // 表明返回服务器返回的数据类型
24       }).then(res => {
25         this.tableLoading = false;
26         this.downloadFile(res.data);
27       });
28     },
 1 downloadFile(data) {
 2       let blob = new Blob([data], { type: "application/zip" });
 3       let url = window.URL.createObjectURL(blob);
 4       const link = document.createElement("a"); // 创建a标签
 5       link.href = url;
 6       let date = new Date();
 7       link.download = "fileDown" + FormatTime("YYYY-mm-dd HH:MM", date); // 重命名文件
 8       link.click();
 9       URL.revokeObjectURL(url); // 释放内存
10     }

最后成功下载文件

以上是关于文件下载post请求,返回文件流转换zip,的主要内容,如果未能解决你的问题,请参考以下文章

Ajax异步请求返回文件流(eg:导出文件时,直接将导出数据用文件流的形式返回客户端供客户下载)

java 如何读取本地硬盘上面的zip文件. 返回ZipInputStream流!

c#如何post文件流

php curl get 下载远程zip文件保存在本地例子

前端axios请求, 后端接口返回文件流,完成下载

对 Wordpress REST API 的 POST 请求返回一个空对象