时间:2021-05-20
看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了。
当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源。但是当你使用SpringBoot的jar包发布项目的时候,你会发现,你不能像以前一样操作文件了。当你使用File file = new File()的时候根本不知道这个路径怎么办。而且总不能很小的项目也给它构建一个文件服务器吧。所以这次就来解决这样的问题。
不想知道细节的,可以直接跳转到最后封装的部分,里面有相应的实现。
其实原因你也想的到,你无法对jar包里面的资源进行操作,而对于springboot项目来说,你只能读取里面的文件,只能使用InputStream。使用如下方式针对资源文件进行读取:
ClassPathResource classPathResource = new ClassPathResource("static/a.txt");classPathResource.getInputStream();其中,这个a.txt存放在resources/static目录下
通过上述方式可以获取a中的内容
因为我们无法操作jar包内容,所以我们只能将文件存放在别的位置,与jar包同级的目录是一个不错的选择。
首先获取根目录
然后获取需要的目录,我们设定我们需要将文件存放在与jar包同级的static的upload目录下
然后当我们要将上传的文件存储的时候,按照下面的方式去新建文件,然后使用你喜欢的方式进行存储就可以了。
你需要在application.yml配置中加入以下代码,指定两个静态资源的目录,这样你上传的文件就能被外部访问到了。
这样就能实现上传文件
工具类:
https://github.com/LinkinStars/springBootTemplate/blob/master/src/main/java/com/linkinstars/springBootTemplate/util/FileHandleUtil.java
这个工具类依赖了
如何你不喜欢完全可以根据自己的喜欢改变
如何使用:
最后效果
这个工具类只是实现了如何上传文件,入参也只有InputStream,后续如何你需要接入参数File或者加入文件名防重复等等,就由你来完成了。
总结
以上所述是小编给大家介绍的SpringBoot上传文件到本服务器 目录与jar包同级问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一.SpringBoot内嵌容器的部署方式SpringBoot内部默认提供内嵌的tomcat容器,所以可以直接打成jar包,丢到服务器上的任何一个目录,然后在当
SpringBoot项目在开发中,方便快捷,有一点原因就是SpringBoot项目可以打jar包运行:把jar包直接扔服务器上,然后运行jar包就能访问项目接口
前言使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat。现在需要将项目打包,并部署到服务器tomcat下
默认情况下SpringBoot使用了内嵌的Tomcat服务器,项目最终被打成jar包运行,每个jar包可以被看作一个独立的Web服务器。传统的Web开发,一般会
war包即Web归档文件,将Web项目打成war包可以直接拷贝到Web服务器发布目录(例如Tomcat服务器webapps目录),当Tomcat启动后该压缩文件