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()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值