概述
背景
Springboot 项目中,我们获取Resources下资源,可以通过一般代码实现,但是当部署到linux服务器后,发现获取不了文件的路径,此时用下面的获取代码就可以完美解决。别忘记了加依赖哈。
解决方案:
依赖:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
读取资源代码:
public void getSignOutQrCode(String id, HttpServletResponse response) throws Exception {
String text = QrCodeParamUtils.XFLL_QRCODE_1 + id + "_" + System.currentTimeMillis();
//1.获取文件流
InputStream stream = getClass().getClassLoader().getResourceAsStream("static/SignOut.png");
//2.获取临时文件
File file= new File("static/SignOut.png");
try {
//将读取到的类容存储到临时文件中,后面就可以用这个临时文件访问了
FileUtils.copyInputStreamToFile(stream, file);
} catch (Exception e) {
log.error(e.getMessage());
}
//3.这个时候再去获取资源的文件路径 就可以正常获取了
String filePath = file.getAbsolutePath();
//String logoPath = Thread.currentThread().getContextClassLoader().getResource("").getPath() + "static/SignOut.png";
QrCodeUtils.encode(text, filePath , response.getOutputStream(), true);
}
这样写就可以正常通过浏览器访问了。
最后
以上就是妩媚高跟鞋为你收集整理的Springboot 解决linux服务器下获取不到项目Resources下资源的全部内容,希望文章能够帮你解决Springboot 解决linux服务器下获取不到项目Resources下资源所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复