java excel文件损坏_SpringBoot下载Excel文件,解决文件损坏问题(示例代码)

本文介绍了如何在SpringBoot应用中下载Excel文件时遇到的文件损坏问题。通过提供一个示例代码,展示了如何使用HttpServletResponse正确设置响应头,并利用`FileUtils.readFileToByteArray`读取文件内容。同时,提到了`maven-resources-plugin`的配置,以防止xlsx文件在资源目录下被压缩,确保文件可正常下载和打开。
摘要由CSDN通过智能技术生成

@RequestMapping(value = "dowlondTemplateFile")

public ResponseEntity getFile(HttpServletResponse response) throws IOException {

String fileName = "合同历史模板.xlsx";

ClassPathResource resource = new ClassPathResource("static" + File.separator + "templateFile" + File.separator + fileName);

try {

File file = resource.getFile();

//下载文件路径

if (file.exists()) {

if (SecurityUtil.getOnlineUser() != null) {

LogUtil.info(SecurityUtil.getOnlineUser().getId(), SecurityUtil.getOnlineUser().getName(),

"下载文件", "成功",

"下载文件,id", "");

}

HttpHeaders headers = new HttpHeaders();

//下载显示的文件名,解决中文名称乱码问题

String downloadFileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");

//通知浏览器以attachment(下载方式)打开图片

headers.setContentDispositionFormData("attachment", downloadFileName);

//application/octet-stream : 二进制流数据(最常见的文件下载)。

headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);

return new ResponseEntity<>(FileUtils.readFileToByteArray(file),

headers, HttpStatus.CREATED);

} else {

throw new FileNotExistException();

}

} catch (IOException e) {

return null;

}

}

解决 pom中加入如下 这个插件可以避免xlsx文件在resource目录下被自动压缩,这样就可以正常下载,打开了

org.apache.maven.plugins

2.6

maven-resources-plugin

UTF-8

xlsx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值