栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot项目打jar包后部署在linux服务器上上传文件失败

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot项目打jar包后部署在linux服务器上上传文件失败

项目在开发环境中,图片可以正常上传和访问;打jar包后,文件无法上传到原来位置,路径错误

java.io.IOException: java.io.FileNotFoundException: /tmp/tomcat.9090.8099827834040313602/work/Tomcat/localhost/ROOT/file:/usr/springboot/blog-api-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/static/images/3abf4358a8fc454baae0db8de854b292.png (No such file or directory)

因为在开发环境中通过classpath可以找到相对于磁盘的绝对路径,但在打jar包后,找不到对应文件夹,所以解决办法是修改后端保存文件代码

修改后,文件正常上传,并且可以通过url路径正常访问,具体的url路径需要根据nginx配置以及保存路径来判断

修改前(报错)的代码:

String staticPath = ClassUtils.getDefaultClassLoader().getResource("static").getPath();

修改后的代码:

//如果是静态方法,把getClass换成类名.class
ApplicationHome h = new ApplicationHome(getClass());
File jarF = h.getSource();
String staticPath = jarF.getParentFile().toString()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/684768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号