国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - SpringBoot上傳文件到本服務(wù)器 目錄與jar包同級(jí)問題

SpringBoot上傳文件到本服務(wù)器 目錄與jar包同級(jí)問題

2021-06-11 13:31LinkinStar Java教程

這篇文章主要介紹了SpringBoot上傳文件到本服務(wù)器 目錄與jar包同級(jí)問題,需要的朋友可以參考下

前言

看標(biāo)題好像很簡(jiǎn)單的樣子,但是針對(duì)使用jar包發(fā)布springboot項(xiàng)目就不一樣了。
當(dāng)你使用tomcat發(fā)布項(xiàng)目的時(shí)候,上傳文件存放會(huì)變得非常簡(jiǎn)單,因?yàn)槟憧梢噪S意操作項(xiàng)目路徑下的資源。但是當(dāng)你使用springboot的jar包發(fā)布項(xiàng)目的時(shí)候,你會(huì)發(fā)現(xiàn),你不能像以前一樣操作文件了。當(dāng)你使用file file = new file()的時(shí)候根本不知道這個(gè)路徑怎么辦。而且總不能很小的項(xiàng)目也給它構(gòu)建一個(gè)文件服務(wù)器吧。所以這次就來解決這樣的問題。
不想知道細(xì)節(jié)的,可以直接跳轉(zhuǎn)到最后封裝的部分,里面有相應(yīng)的實(shí)現(xiàn)。

原因

其實(shí)原因你也想的到,你無法對(duì)jar包里面的資源進(jìn)行操作,而對(duì)于springboot項(xiàng)目來說,你只能讀取里面的文件,只能使用inputstream。使用如下方式針對(duì)資源文件進(jìn)行讀取:

?
1
2
classpathresource classpathresource = new classpathresource("static/a.txt");
classpathresource.getinputstream();

其中,這個(gè)a.txt存放在resources/static目錄下

通過上述方式可以獲取a中的內(nèi)容

實(shí)現(xiàn)

因?yàn)槲覀儫o法操作jar包內(nèi)容,所以我們只能將文件存放在別的位置,與jar包同級(jí)的目錄是一個(gè)不錯(cuò)的選擇。

首先獲取根目錄

?
1
2
3
4
file path = new file(resourceutils.geturl("classpath:").getpath());
if(!path.exists()) {
path = new file("");
}

然后獲取需要的目錄,我們?cè)O(shè)定我們需要將文件存放在與jar包同級(jí)的static的upload目錄下

?
1
2
3
4
file upload = new file(path.getabsolutepath(),"static/upload/");
if(!upload.exists()) {
upload.mkdirs();
}

然后當(dāng)我們要將上傳的文件存儲(chǔ)的時(shí)候,按照下面的方式去新建文件,然后使用你喜歡的方式進(jìn)行存儲(chǔ)就可以了。

?
1
2
file upload = new file(path.getabsolutepath(),"static/upload/test.jpg");
fileutils.copyinputstreamtofile(inputstream, uploadfile);

不要忘記

你需要在application.yml配置中加入以下代碼,指定兩個(gè)靜態(tài)資源的目錄,這樣你上傳的文件就能被外部訪問到了。

?
1
2
3
4
spring:
# 靜態(tài)資源路徑
resources:
static-locations: classpath:static/,file:static/

這樣就能實(shí)現(xiàn)上傳文件

最后的封裝

工具類:

https://github.com/linkinstars/springboottemplate/blob/master/src/main/java/com/linkinstars/springboottemplate/util/filehandleutil.java

這個(gè)工具類依賴了

?
1
2
compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1'
compile group: 'commons-io', name: 'commons-io', version: '2.4'

如何你不喜歡完全可以根據(jù)自己的喜歡改變

如何使用:

?
1
2
3
4
5
6
7
8
/**
* 測(cè)試文件上傳
*/
@requestmapping("/upload")
@responsebody
public string upload(multipartfile file) throws ioexception {
return "文件存放路徑為" + filehandleutil.upload(file.getinputstream(), "image/", file.getoriginalfilename());
}

最后效果


SpringBoot上傳文件到本服務(wù)器 目錄與jar包同級(jí)問題

follow up

這個(gè)工具類只是實(shí)現(xiàn)了如何上傳文件,入?yún)⒁仓挥衖nputstream,后續(xù)如何你需要接入?yún)?shù)file或者加入文件名防重復(fù)等等,就由你來完成了。

總結(jié)

以上所述是小編給大家介紹的springboot上傳文件到本服務(wù)器 目錄與jar包同級(jí)問題,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

原文鏈接:http://www.cnblogs.com/linkstar/p/9938721.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久久婷婷国产精品综合 | 中文字幕免费视频 | 黄色av网站免费看 | 久久性色 | 国产精品无码永久免费888 | 久热免费在线观看 | 99精品久久久 | 国精品一区二区三区 | 久久久久久久久国产 | 国产成人久久精品一区二区三区 | 亚洲视屏 | 久久福利 | 精品一区二区三区视频 | 久久久久99 | 欧美在线视频网 | 日日夜夜精品 | 亚州ava| 狠狠干网站 | 我和我的祖国电影在线观看免费版高清 | 日本一区二区中文字幕 | 亚洲日本韩国在线观看 | 蜜桃视频网站在线观看 | 日韩一二三区视频 | 日本欧美在线观看 | 亚洲精品乱码久久久久久蜜桃不爽 | 牛牛澡牛牛爽一区二区 | 小泽玛丽娅 | 久久综合久久88 | 午夜网址 | 在线视频不卡一区 | 99亚洲伊人久久精品影院 | 精品久久精品 | 在线视频中文字幕 | 最新天堂中文在线 | 99伊人 | 久久九九99 | 综合精品| 亚洲高清在线观看 | 日韩精品一区二区三区在线播放 | 久久久久久极品 | 午夜电影网 |