把模板文件放在了工作目录/resource/excel/OTS参数配置模板.xlsx,然后增加接口下载该模板,但是使用wps打不开!
下载代码:
public void exportOTSParamTemplate(HttpServletResponse response) {
final String TEMPLATE_PATH = "excel/OTS参数配置模板.xlsx";
final String DOWNLOAD_FILENAME = "OTS参数配置模板.xlsx";
ClassPathResource resource = new ClassPathResource(TEMPLATE_PATH);
if (!resource.exists()) {
logger.error("OTS参数模板文件不存在: {}", TEMPLATE_PATH);
throw new RuntimeException("模板文件不存在!");
}
try (InputStream inputStream = resource.getInputStream();
OutputStream outputStream = response.getOutputStream()) {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader("Content-Disposition",
"attachment; filename=\"" + URLEncoder.encode(DOWNLOAD_FILENAME, StandardCharsets.UTF_8.name()) + "\"");
StreamUtils.copy(inputStream, outputStream);
outputStream.flush();
logger.info("OTS参数模板下载成功!");
} catch (IOException e) {
log.error("导出OTS参数模板失败", e);
throw new RuntimeException("模板下载失败,请稍后重试", e);
}
}
报错:

首先确定你的模板文件可以用wps打开,然后再检查一下你的模板文件和下载文件的大小,如果下载的文件比你模板文件大一些,那么恭喜你和我的问题一样。
原因:
xlsx 模板在 Maven 打包时被资源过滤(resource filtering)当文本处理了,导致二进制结构损坏。xlsx 本质是一个 ZIP 容器,Maven 默认会对 src/main/resources 下的文件做占位符替换和字符集转码,非 ASCII 字节会被替换或丢弃,ZIP 签名和 CRC 校验一坏,WPS/Excel 就直接报“文件已损坏”。
所以需要在maven中增加配置忽略上面的默认配置。在插件配置中,增加如下插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
响应头可以再标准一下:
// xlsx 的标准 MIME 类型
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
// 兼容各浏览器的文件名编码写法
String encodedFileName = URLEncoder.encode(DOWNLOAD_FILENAME, StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20");
然后下载文件就没有问题啦~🎉
扫码分享
文章标题:SpringBoot下载文件打不开问题
侵权提示:部分信息可能来源于网络。如发现有侵权,请随时联系删除!













