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

Java44

这两天写一个后台生成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' 后,问题解决,如下所示:

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

Digester解析xml原理

Tomcat内部是使用Digester来解析xml文件的,将xml转化为java对象。 digester底层是基于SAX+事件驱动+栈的方式来搭建实现的,SAX主要用来解析xml,事件驱动主要是在解析...
Java

spring 事务

事务执行原理 入口是invokeWithinTransaction,能走到这一步,说明已经在代理类那里经过过滤,方法头上使用了Transaction注解。 首先取到注解上的参数,保存到Transact...
Java

架构设计之设计模式总结

在实际的项目开发中,我们经常使用设计模式。设计模式能否正确、合理、灵活地应用到项目中,是判断您开发能力的重要指标之一。一方面,您需要为编程打下坚实的基础,另一方面,需要积累大量的项目经验。这个过程不是...
Java

【Unity Shader学习笔记】Unity光照-渲染路径

官方文档:渲染路径 1、简介 需要为每个 Shader 设置正确的渲染路径。 在大多数情况下,一个项目只使用一个渲染路径,所以我们可以设置整个项目的渲染路径。[En]In most cases, a ...
Java

Vue初探

MVVM模型 M:模型(Model) :对应 data 中的数据 V:视图(View) :模板(理解为html页面) VM:视图模型(ViewModel) : Vue 实例对象 数据驱动视图: 如上图...
Java

Mybatis SqlNode源码解析

1.ForEachSqlNode mybatis的foreach标签可以将列表、数组中的元素拼接起来,中间可以指定分隔符separator <select id="getByUserI...
Java

西门子PLC数据读取 Observer设计模式

当我听到这个需求的时候,我差点爆粗口(实际上可能已经爆了,不过我忘了)。 需求刚开始是: C#连接PLC Modbus读取值。 我用C#写完了,觉得太简单了,还弄了个窗体。 接着是: 只读值。这太简单...
Java

Integer包装类中值的比较

前提知识:"=="当比较基本类型时比较的是值,当为引用类型时比较的是内存地址 首先看代码和结果: Integer integer1 = new Integer(1); Integer integer2...
Java

ucore操作系统学习(四) ucore lab4内核线程管理

现代操作系统为了满足人们对于多道编程的需求,希望在计算机系统上能并发的同时运行多个程序,且彼此间互相不干扰。当一个程序受制于等待I/O完成等事件时,可以让出CPU给其它程序使用,令宝贵的CPU资源得到...
Java

Springboot3.0+spring6.0+JDK17+配置jsp和打war包

由于某些缘故,公司的产品需要升级,但并不希望花费大量时间重写前端代码(原来的就不是前后分离的)。所以虽然spring和springboot都升级为最新的版本,但是依然还是需要支持jsp,并继续用打包为...