springboot服务器部署,springboot netty
前言
看标题似乎很简单,但这与使用jar包发布SpringBoot项目不同。
如果使用长篇文章tomcat发布项目,则上传和存储文件将变得非常容易。 因为可以自由操作项目路径下的资源。 但是,长话短说的是,使用SpringBoot的jar包发布项目时,无法像以前那样操作文件。 长谈中使用File file=new File () )时,我完全不知道这个路径是怎么回事。 另外,即使是小项目也无法构建文件服务器吧。 所以这次要解决这样的问题。
如果不想知道详细信息,请直接跳到最后一个包的部分。 其中有相应的实现。
原因
实际上,您无法处理jar包中的资源,但在springboot项目中只能读取文件,只能使用InputStream。 可以通过以下方法读取资源文件:
classpathresourceclasspathresource=newclasspathresource (' static/a.txt ' );
class path resource.get inputstream (;
其中,此a.txt存储在资源/静态目录中
可以通过上述方法获取a的内容
实现
因为我们不能操作jar包的内容,所以只能将文件保存在其他位置。 与jar包级别相同的目录是一个不错的选择。
首先获取根目录
file path=new file (资源utils.geturl (' class path : ' ).getPath ) );
if (! path.exists () }
path=new File (' );
}
您必须获取下一个所需的目录,并将文件存储在与jar包相同级别的静态上载目录中
文件上载=new file (path.getabsolutepath )、' static/upload/' );
if (! upload.exists (
upload.mkdirs (;
}
然后,保存上传的文件时,按照以下方式创建新文件,并按照自己喜欢的方式保存即可。
file upload=new file (path.getabsolutepath )、' static/upload/test.jpg ' );
fileutils.copyinputstreamtofile (inputstream,uploadFile );
别忘了
为了允许从外部访问上载的文件,必须将以下代码添加到application.yml配置中,以指定两个静态资源的目录。
spring:
#静态资源路径
资源:
静态位置3360 class path : static /,file:static/
这样就可以上传文件了
最后一个包
工具类:
这个工具类是依赖的
EMC组: ' commons-file upload ',name: 'commons-fileupload ',version: '1.3.1'
compile group: 'commons-io ',name: 'commons-io ',version: '2.4 '
如何不喜欢可以根据自己的喜好来改变
使用方法:
//*
*测试文件上传
*/
@请求映射(/upload ) )。
@响应主体
公共字符串上载(多参数文件) throws IOException {
return '文件的保存路径为' filehandle util.upload (file.get inputstream (、' image/'、file.getOriginalFilename ) );
}
最后的效果
Follow up
该工具类只是实现了文件的上传方法,参与也只有InputStream,之后需要如何访问参数File、输入文件名来防止重复等,都由你来完成。
总结
以上是编辑介绍的SpringBoot将文件上传到此服务器目录,问题级别与jar软件包相同,希望对大家有所帮助。 如果大家有什么疑问的话请给我发信息。 编辑马上回复大家。