下载导出文件,处理二进制文件

本文介绍了一种在前端处理从后端接收的二进制流并将其下载为Excel文件的方法。通过使用Blob对象和URL.createObjectURL(),结合HTML的a标签,实现了将服务器返回的二进制数据流转换并下载为指定文件格式的功能。

1.在做一些管理后台项目中,很多表格,需要导出excel的功能;但是很多的后端的哥们,返回的是二进制流文件,这里需要咱们自己处理一下了。

话不多说上代码:这里的客户端http请求用的是axios

//处理下载流
    const download = (content, fileName) => {
      const blob = new Blob([content]); 
      //创建一个类文件对象:Blob对象表示一个不可变的、原始数据的类文件对象
      const url = window.URL.createObjectURL(blob); 
      //URL.createObjectURL(object)表示生成一个File对象或Blob对象
      let dom = document.createElement("a"); 
      //设置一个隐藏的a标签,href为输出流,设置download
      dom.style.display = "none";
      dom.href = url;
      dom.setAttribute("download", fileName); 
      //指示浏览器下载url,而不是导航到它;因此将提示用户将其保存为本地文件
      document.body.appendChild(dom);
      dom.click();
    };

// 下载请求

           <Button
            type="primary"
            onClick={() => {
              axios({
                method: "get", //请求方式
                url: `${Storage.get("gzhhost")}/blacklist-download/blacklist`,
                headers: {
                  token: Storage.get("Authorization"),
                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值