Springboot打jar包无法读取resource下文件
程序员文章站
2022-05-04 17:30:06
...
记一次springboot项目打jar包无法获取本地资源文件
- 本地环境
ClassPathResource resource = new ClassPathResource("templates/xxx.xlsx");
InputStream in = resource.getInputStream();
//下载文件
downFile("xxx.xlsx",request,response,in);
使用该方法本地测试完全没有问题,结果发现打成jar包后就会提示找不到路径
方案一:
将资源文件放在jar包之外的路径,该方案维护性较差。
方案二:
使用 PathMatchingResourcePatternResolver 来读取文件资源。
String fileName = URLEncoder.encode("xx", "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.setContentType("application/octet-stream; charset=UTF-8");
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("templates/xx.xlsx");
Resource resource = resources[0];
InputStream stream = resource.getInputStream();
StringBuilder buffer = new StringBuilder();
byte[] bytes = new byte[1024];
int len = 0;
try {
while ((len = stream.read(bytes)) != -1) {
response.getOutputStream().write(bytes, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
上一篇: 制作Mac系统盘
推荐阅读
-
解决SpringBoot打成jar运行后无法读取resources里的文件问题
-
SpringBoot如何读取war包jar包和Resource资源
-
关于Springboot打成JAR包后读取外部配置文件的问题
-
springboot 运行 jar 包读取外部配置文件的问题
-
springboot 打jar 包部署时 读取外部配置文件
-
springboot 打jar 包部署时 读取外部配置文件
-
解决SpringBoot打成jar运行后无法读取resources里的文件问题
-
SpringBoot如何读取war包jar包和Resource资源
-
springboot打包jar文件运行后无法读取jar目录中的Excel模板文件
-
【解决方案】springboot 打jar包后启动,resource下配置文件找不到