当前位置: 首页 > news >正文

JAVA下载Excel文件之后无法打开,提示损坏

resources 目录下放模板 excel 文件,通过接口下载后,可以正常下载,但打不开。

问题: springboot 项目简单的下载excel 模板功能,模板放在resources/template/目录中

public void downloadItemBatch(HttpServletResponse response) throws IOException {String fileName = "商品信息.xlsx";String path = "templates/" + fileName;InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(path);response.setContentType("application/vnd.ms-excel;charset=UTF-8");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));ServletOutputStream outputStream = response.getOutputStream();IOUtils.copy(inputStream, outputStream);outputStream.flush();outputStream.close();inputStream.close();}

代码挺简单,一运行,也挺顺利,很快就把文件下好了。点开看看,提示我可能是内存不足,文件无法打开,而且下载的文件比templates里的文件要大。

看了很多帖子,试了很多方法,最后发现,pom文件里加个东西就行了

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><configuration><nonFilteredFileExtensions><!--不加这一行,xlsx文件会被过滤,然后在maven build的时候,去target下看对应的xlsx就是损坏的--><nonFilteredFileExtension>xlsx</nonFilteredFileExtension></nonFilteredFileExtensions></configuration>            
</plugin>

解决:maven 构建时对该 excel 模板进行了过滤,导致文件损坏,解决办法,在过滤的时候把 xlsx 排除掉(<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>)。

http://www.lryc.cn/news/133283.html

相关文章:

  • 复合 类型
  • Practices11|41. 缺失的第一个正数(数组)、73. 矩阵置零(矩阵)
  • 深入完整的带你了解java对象的比较
  • ubuntu20.04升级GLIBC高版本方法,解决:version `GLIBC_2.34‘ not found
  • 日产将使用东风纯电平台?官方回应:不是日产品牌
  • cdh6.3.2 Flink On Yarn taskmanager任务分配倾斜问题的解决办法
  • 改进YOLO系列:3.添加SOCA注意力机制
  • SpringBoot整合Mybatis Plus——条件构造器Wrapper
  • while循环语句
  • 【ARM 嵌入式 编译系列 11 -- GCC __attribute__((packed))详细介绍】
  • Pytorch-day06-复杂模型构建-checkpoint
  • windows电脑系统自带的画图工具如何实现自由拼图
  • 直线模组的运行注意事项
  • 记录每日LeetCode 2236. 判断根结点是否等于子结点之和 Java实现
  • 使用PHP生成MySQL数据字典
  • React(7)
  • MySQL8.0新特性之用户管理
  • 强推9个研究生必备的免费论文下载网站
  • 解读2023年上半年财报:继续押注儿童业务的361°,有着怎样的野心?
  • 音视频 ffplay播放控制
  • 扁线电机定子转子工艺及自动化装备
  • 分类预测 | MATLAB实现DRN深度残差网络多输入分类预测
  • docker学习(十五)docker安装MongoDB
  • 3.JQuery closest()的用法
  • 速通蓝桥杯嵌入式省一教程:(七)定时器输入捕获中断与PWM频率占空比测量
  • 深入理解python虚拟机:程序执行的载体——栈帧
  • 云服务器-Docker容器-系统搭建部署
  • ES 索引重命名--Reindex(一)
  • Spring之bean的生命周期
  • 策略梯度方法