JS使用BLOB方式下载Excel导致文件损坏的问题解决

这两天写一个后台生成Excel返回前端下载的功能,遇到了一个问题,记录一下。

前端点击下载按钮,文档损坏,但是使用Postman调用下载,文档却是正常的。

exportExcel(exportExcelParams.value).then((res: any) => {
        let blob = new Blob([res], {
          type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
        });
        let link = document.createElement('a');
        link.style.display = 'none';
        link.href = URL.createObjectURL(blob);
        link.download = exportExcelParams.value.expName; //下载的文件名
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      });

在请求方法中加入 responseType: ‘blob’ 后,问题解决,如下所示:

export const exportExcel = async (SysExportSetReq: any) => {
  return request.request({
    url: '/sam/master/baSysExportSet/exportExcel',
    method: 'POST',
    data: SysExportSetReq,
    responseType: 'blob'
  });
};

Original: https://www.cnblogs.com/JyoKou/p/16545939.html
Author: JyoKou
Title: JS使用BLOB方式下载Excel导致文件损坏的问题解决

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590165/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JMeter 后置处理器之JSON提取器

    后置处理器之JSON提取器 By:授客 QQ:1033553122 测试环境 JMeter 5.4.1 插件介绍 JSON后置处理器(PostProcessor)允许使用 JSON…

    Java 2023年6月16日
    096
  • java多线程的两种创建方式

    方式一:继承Thread类 1.创建一个继承于Thread类的子类2.重写Thread类的run()方法—> 将此线程执行的操作声明在run()中3.创建Thre…

    Java 2023年6月13日
    063
  • 可变参数

    可变参数 当不确定需要传进多少个参数的时候,就可以使用 一个方法里最多只有一个可变参数,并且位置在最后面 他的写法是 int… n、double… n、St…

    Java 2023年6月6日
    066
  • HashMap原理

    Java7 : 数组 + 链表 Java8: 数组 + 链表 + 红黑树 (链表超过8则转为红黑树,小于6则变会链表) >> 加快查询. 源码如下: 参数解释: DEF…

    Java 2023年6月8日
    060
  • 【RocketMQ】消息积压判断及解决

    一. 定位问题 1. Console入口 主题–>Topic–>Consumer管&#x7…

    Java 2023年5月29日
    0202
  • Spring Boot 入门(十)使用Quartz

    初始化数据库脚本 脚本地址:https://github.com/quartz-scheduler/quartz/blob/9f9e400733f51f7cb658e3319fc2…

    Java 2023年6月5日
    068
  • 解决在nginx+php环境下$_SERVER[‘PHP_SELF’]获取不到值的问题

    公司的一个商城项目,然后配置完参数,本来应该可以跑起来的,最近做了一次服务器迁移,打开后台发现浏览器提示重定向次数过多 追踪代码调试,发现是$_SERVER[‘PHP_…

    Java 2023年5月30日
    059
  • SpringBoot2.x修改Redis序列化方式

    添加一个配置类即可: /** * @Author FengZeng * @Date 2022-03-22 13:43 * @Description TODO */ @Configu…

    Java 2023年6月9日
    079
  • 尤娜故事-迷雾-springboot扮酷小技巧

    前情回顾 从前,有一个简单的通道系统叫尤娜…… 尤娜系统的第一次飞行中换引擎的架构垂直拆分改造 四种常用的微服务架构拆分方式 尤娜,我去面试了 正文 我回到…

    Java 2023年5月30日
    074
  • Spring学习笔记

    原生Spring 列举一些重要的 Spring 模块? Spring Core核心模块, Spring 其他所有的功能基本都需要依赖于该类库,主要提供 IoC 依赖注入功能的支持。…

    Java 2023年6月7日
    090
  • mysql-常用命令

    C1 Mysql常用命令合集 P1.设置方面命令 连接 mysql -u root -p 授权指定ip访问 GRANT ALL PRIVILEGES ON *.* to ‘root…

    Java 2023年6月16日
    070
  • 一次编程小练习:根据流量计数动态选择不同的策略

    持续优化一个程序的过程,也是编程技艺提升和编程的乐趣所在。 在实际应用中, 往往会承载两种不同的流量。一种是日常流量,比较平稳且持续;一种是极端流量,比较尖锐且短暂。应对这种情况,…

    Java 2023年6月9日
    078
  • 【碎】@Value 注解

    注意lombok和spring posted @2022-09-16 14:12 HypoPine 阅读(6 ) 评论() 编辑 Original: https://www.cnb…

    Java 2023年6月15日
    082
  • 畅游Flink之API-Part1(Java版)

    1.Transform 1.1.基本转换算子 map/flatMap/filter map 把数组流中的每一个值,使用所提供的函数执行一遍,一一对应。得到元素个数相同的数组流 fl…

    Java 2023年6月5日
    087
  • mybatis-plus忽略映射字段

    mybatis-plus使用对象属性进行SQL操作,经常会出现对象属性非表字段的情况,忽略映射字段使用以下注解: @TableField(exist = false):表示该属性不…

    Java 2023年5月30日
    072
  • Ribbon

    Spring Cloud Ribbon是基于Netflix Ribbon实现的一套 客户端 负载均&#x8…

    Java 2023年6月8日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球