基于blob对象,模拟a标签,实现下载文件

1.请求头设置responseType

headers:{
   'responseType': "blob"
 },

2.在组件中调用

//调用方法,获取后台返回的二进制数据流
this.operateRecordLoad().then((res)=>{
	/**
	生成blob对象
	拼接\uFEFF避免中文乱码问题(也可以由后端配置好,则不用拼接\uFEFF),
	设置文件格式,不设置默认为txt
	**/
   let blob = new Blob(['\uFEFF'+res],{type: "application/vnd.ms-excel;chartset=utf-8"});
   
   //创建a标签
   let link = document.createElement('a');
   let objectUrl = URL.createObjectURL(blob);
   //将a标签的href指向数据流
   link.setAttribute("href",objectUrl);
   let fileName = 'export-'+ new Date().getTime() + '.csv'
   //设置a标签的download属性,及文件名
   link.setAttribute("download",fileName); 
   //触发a标签点击
   link.click();
   //释放blob对象,避免内存溢出
   window.URL.revokeObjectURL(link.href)
 })

blob实例对象:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值