前端使用blob下载大意遇到的坑,加了blob都没用的坑

1 篇文章 0 订阅
1 篇文章 0 订阅
文章讲述了在使用axios.get从后端获取数据流时,遇到无法正确打开Excel文件的问题。作者发现需要将blob与参数一起处理,并调整了responseType为blob。通过解析content-disposition头信息来设置文件名,并使用Blob对象创建文件,然后利用a标签或IE的msSaveBlob方法实现文件下载。在修复过程中,eslint可能被关闭,未提示错误。
摘要由CSDN通过智能技术生成

使用axios.get获取后端传来的数据流,前端用blob接收需要吧blob跟传参放一起,之前是分开放,一点错没有,就是打不开Excel文件,真是麻了,主要还是eslint好像是关了没有报错。代码如下:
修改之前代码

修改之后代码

 axios
        .get(
          "http://localhost:8989/stayregister/exportExcel",{
            params,
            responseType:'blob',
          }
        )
        .then((res) => {
          console.log(res);
          var temp = res.headers["content-disposition"]
            .split(";")[1]
            .split("filename=")[1];
          var fileName = decodeURIComponent(temp);
          const blob = new Blob([res.data], {
            type: "application/vnd.ms-excel;charset=UTF-8",
          });
          if ("download" in document.createElement("a")) {
            // 非IE下载
            const a = document.createElement("a");
            a.download = fileName;
            a.style.display = "none";
            a.href = URL.createObjectURL(blob);
            document.body.appendChild(a);
            a.click();
            URL.revokeObjectURL(a.href); // 释放URL 对象
            document.body.removeChild(a);
          } else {
            // IE10+下载
            navigator.msSaveBlob(blob, fileName);
          }
          8;
        })
        .catch((err) => {
          console.error(err);
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值