全国咨询热线:18720358503

社交名片小程序_Angular使用HTTP POST下载流文件的步

类别:行业新闻 发布时间:2021-01-05 浏览人次:

Angular利用HTTP POST下载流文件的步骤记录       这篇文章主要给大家介绍了关于Angular利用HTTP POST下载流文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Angular具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

在使用Angular开发项目时,通常会有下载文件的功能项。一般是后台返回下载地址,通过 a 标题或者使用 window 打开下载地址新窗口,浏览器则会识别出流文件进行文件下载。

但是,有时候进行http异步请求,后台返回的并不是下载地址,而是直接返回一个文件流,这时如何使用http请求回来的文件流转换成文件下载?

其实并非Angular框架存地这样的情况,其他PWA如Vue,React甚至Jquery都通过http xhr进行请求而获取的流文件,浏览器也并不会自动识别并自动下载。

那当然,肯定有解决方案。

方案思路:

http请求使用blob的返回类型,获取文件流后,对数据进行Blob,再提交给浏览器进行识

下面是代码示例

 * 导出excel
exportExcel(){
 const params = {}; // body的参数
 const queryParams = undefined; // url query的参数
 this.http.post(this.exportUrl, params, queryParams, {
 responseType: "blob",
 headers: new HttpHeaders().append("Content-Type", "application/json")
 }).subscribe(resp= {
 // resp: 文件流
 this.downloadFile(resp);
 * 创建blob对象,并利用浏览器打开url进行下载
 * @param data 文件流数据
downloadFile(data) {
 // 下载类型 xls
 const contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
 // 下载类型:csv
 const contentType2 = 'text/csv';
 const blob = new Blob([data], { type: contentType });
 const url = window.URL.createObjectURL(blob);
 // 打开新窗口方式进行下载
 // window.open(url); 
 // 以动态创建a标签进行下载
 const a = document.createElement('a');
 const fileName = this.datePipe.transform(new Date(), 'yyyyMMdd');
 a.href = url;
 // a.download = fileName;
 a.download = fileName + '.xlsx';
 a.click();
 window.URL.revokeObjectURL(url);

总结

到此这篇关于Angular利用HTTP POST下载流文件的文章就介绍到这了,更多相关Angular用HTTP POST下载流文件内容请搜索凡科以前的文章或继续浏览下面的

下一篇:没有了

推荐阅读

社交名片小程序_Angular使用HTTP POST下载流文件的步

Angular运用HTTP POST免费下载流文档的流程纪录 本文关键给大伙儿详细介绍了有关Angular运用HTTP POST免费下载流文档的有关材料,原文中根据实例编码详细介绍的十分详尽,对大伙儿的...

2021-01-05
如何制作小程序_vue 添加和修改用同一个表单,e

vue 加上和编写用同一个表格,el-form表格递交后清除表格数据信息实际操作 本文关键详细介绍了vue 加上和编写用同一个表格,el-form表格递交后清除表格数据信息实际操作,具备非常...

2021-01-05
分销商城系统解决方法-企业网站建设目录设计方

列表是网站建设中比较常见的元素设计,对网站信息量的展示,列表有着天然的优势,因而在门户网站或是商城网站中,也是较为常见的。列表设计历史悠久,但在设计上依然有很多细...

2021-01-05
小程序直播刚上线_Vue的Options用法说明

Vue的Options使用方法表明 本文关键详细介绍了Vue的Options使用方法表明,具备非常好的参照使用价值,期待对大伙儿有一定的data:內部数据信息适用目标和涵数,优先选择用涵数n...

2021-01-05
如何编写手机小程序_Vue 电商后台管理项目阶段性

Vue 电子商务后台管理管理方法新项目环节性小结(强烈推荐) 本文关键详细介绍了Vue 电子商务后台管理管理方法新项目环节性小结,文中给大伙儿详细介绍的十分详尽,对大伙儿的...

2021-01-05
广州凡科互联网科技股份有限公司招聘买手

招聘人数:14职位信息岗位职责:1、根据企业经营发展的需要,制定采购计划及开发供应商,完成公司下达的采购目标。2、根据采购计划及采购需求,利用各种渠道与方式开发评选供应...

2021-01-05
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信