vue 后台接口返回文件流地址的下载

1 篇文章 0 订阅
0 篇文章 0 订阅

以前的列表导出都是下载的插件自己导出的,现在要求从后台导出,然后后台接口返回的是文件流,如下图
在这里插入图片描述

第一次获取这样的数据,无从下手啊,百度吧

其实很简单,首先在axios.post的请求中把默认的 " responseType:‘json’ " 改为" responseType:‘blob’ "; 这块要敲黑板了,我栽在这里了,一直没有修改,所以下载下来的文件打开后一直提示,如图
在这里插入图片描述

设置成blob后打开无压力!

然后按正常的请求接口的方式获取到了这个文件流,可能是response.data,也可能直接就是response,这个看你们后端人员如何返回了, 获取到的文件流我们用blob转一下,

 let blob = new Blob([res], {type: "application/vnd.ms-excel"});  // res就是接口返回的文件流了
 let objectUrl = URL.createObjectURL(blob); 
 window.location.href = objectUrl; 

这样不需要再有其他操作了,直接就可以导出文件了.
忘了,得注意blob里的这个type,要根据你们的需要更换文件类型啊,可以参考一下这个 https://www.cnblogs.com/yjmBlogs/p/9493726.html , 我需要导出的是列表数据,所以选的是’application/vnd.ms-excel’,就会导出.xls的文件来,你们根据需求换啊

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值