前端下载二进制流的数据

本文介绍了前端如何处理二进制流数据下载,通过设置responseType为'arraybuffer',结合Blob和FileReader进行操作。内容包括封装下载方法,使用Promise处理错误,针对IE和其他浏览器的不同下载策略,以及利用URL.createObjectURL创建临时下载链接。同时,提到了ArrayBuffer和Blob对象在处理二进制数据中的作用。
摘要由CSDN通过智能技术生成

1. 网络请求的时候设置responseType,看网上好多都是设置为"blob",我这里设置"arraybuffer"也ok,需要做new Blob()处理

axios({
        method: "post",
        url: URL.CSMS_SALES_COMPANY_QUERYTREEOUT,
        data: {
          token: Cookies.get("ma_token"),
          reqData: {}
        },
        responseType: "arraybuffer"
      }).then(response => {
        exportExcel(response,"企业信息导出.xlsx",this);
      }).catch(error => {});

2. 因为是多个页面涉及下载,故封装了方法

(1)在Promise中,new一个 FileReader对象,通过readAsText方法读取内容,读取完成后将结果返回

(2)判断是否是后端的错误码提示,若不是,则开始处理数据,若是,则抛出错误提示

(3)判断浏览器,IE浏览器,使用window.navigator.msSaveOrOpenBlob,保存和打开

(4)其他浏览器,则通过window.URL.createObjectURL,获取url,然后在页面插入一个a标签,隐藏,设置h

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值