spring boot jar部署导致上传文件失败的问题

最近做文件上传下载,这个东西轻车熟路了。我这里上传目录是target下面的static/files下面,注意是target,截图中2位置,并不是源码1的位置。样例代码如图,此代码是拷贝一个文件到target目录下static/files下面。路径的获取就是

String realPath=this.getClass().getClassLoader().getResource("static/files").getPath();
这样就上传到target下面了,浏览器可以通过http://localhost:1111/files/业务.txt,访问。如果上传到源码截图1的位置,没用,浏览器访问不到,如果ide支持热部署的话,需要刷新才能访问。能不能访问的唯一标准是target下面有这个文件。

以上是我在idea里面测试的,没问题。然后我使用maven clean,maven install打成jar包部署的时候问题来了,同样的代码就有问题了,jar包里面不支持新建文件,导致拷贝文件失败,访问http://localhost:1111/files/业务.txt也失败。
到这里可能,你会说使用war包部署不就可以了吗,确实war包部署的确可以解决问题,应为文件是解压过的,新建文件当然没有问题。

除了war包部署,我下面将一个jar包解压部署,我刚知道的时候确实惊讶到我了。

1.准备可执行spring boot jar包,执行看看能不能顺利执行。

2.解压此项目,例如我的jar包叫这个Chapter2-1-1-1.0.0.jar,解压到桌面路径是C:\Users\ningm\Desktop\Chapter2-1-1-1.0.0\

3.cd C:\Users\ningm\Desktop\Chapter2-1-1-1.0.0,然后执行java org.springframework.boot.loader.JarLauncher。项目顺利启动。

使用这个方式启动后,完美解决文件上传不到jar包的问题。

spring boot jar部署导致上传文件失败的问题_第1张图片

spring boot jar部署导致上传文件失败的问题_第2张图片

你可能感兴趣的:(spring,boot,java)