springboot xls或者xlsx文件编译后打不开的问题
问题描述
在开发spring cloud项目中突然遇到导出xls文件输入流打不开的问题,文件位置和具体代码实现如下
src
└── main
└── resources
└── templates
└── template.xls
@Override
public void getTemplateFile(HttpServletResponse response) throws IOException {
// 设置下载文件的名称
String fileName = "template.xls";
response.reset();
// 设置下载
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8));
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
// 文件路径
String tempFile = "static/" + fileName;
// 使用 try-with-resources 自动关闭资源
try (InputStream in = this.getClass().getClassLoader().getResourceAsStream(tempFile);
BufferedInputStream bis = new BufferedInputStream(in);
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream())) {
int len;
byte[] buffer = new byte[4 * 1024];
while ((len = bis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, len);
}
bos.flush();
response.flushBuffer();
} catch (IOException e) {
// 记录异常信息
e.printStackTrace();
throw e; // 重新抛出异常,让调用者知道发生了错误
}
}
解决方案:
在pom文件 build 中加入这段代码,maven打包不应该编译这类文件
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
原文地址:https://blog.csdn.net/ZhiJICN/article/details/143716926
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!