SpringBoot 項目中的圖片處理策略之本地存儲與路徑映射
一、前言
在做網頁的時候,會經常遇到一個問題,那就是如何在前端訪問圖片,還有就是圖片應該如何存?存在數(shù)據庫,然后直接把文件發(fā)給前端?數(shù)據庫表示:“哥們你可真行,我快裝不下了”。比較好一點的做法就是把圖片存在本地*(ps:這里不考慮云存儲)*,然后數(shù)據庫存該文件的路徑。這樣一來前端如何訪問這個文件呢?我們都知道在SpringBoot
項目中,靜態(tài)資源都存放在static
目錄下,使得前端可以通過URL
來訪問這些資源,現(xiàn)在我們就需要將文件系統(tǒng)的文件路徑與 URL
建立一個映射關系,把文件系統(tǒng)中的文件當成我們的靜態(tài)資源即可。下面開始演示:
二、演示
本篇的重點是如何通過 URL 來訪問服務器的文件系統(tǒng)中的文件,這里就不使用數(shù)據庫了。
- 我們創(chuàng)建一個
SpringBoot
項目,依賴如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- 在
static
目錄下,我們可以直接通過URL
來訪問,該目錄下有一個/image/avatar.png
文件
我們現(xiàn)在的目標是:假設在D/image
目錄下有一個圖片,如何直接通過URL
來訪問本地文件呢?
- 在
application.properties
配置文件中定義圖片存放的位置
# 圖片保存路勁 imagepath=D:/image/
- 創(chuàng)建一個類實現(xiàn)
WebMvcConfigurer
接口并重寫addResourceHandlers
方法。
@Configuration public class InterceptorConfig implements WebMvcConfigurer { @Value("${imagepath}") private String imagePath;//從配置文件中獲取文件路徑 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/image/**") .addResourceLocations("file:" + imagePath); } }
addResourceHandler("/image/**")
:定義了一個URL模式,即以"/image/"
開頭的請求路徑。任何匹配該模式的請求都將被映射到相應的靜態(tài)資源。.addResourceLocations("file:" + imagepath)
:指定了實際存儲靜態(tài)資源的文件系統(tǒng)路徑,"file:"
前綴告訴Spring MVC
,這是一個文件系統(tǒng)路徑。- 這段代碼的作用是告訴
Spring MVC
,當接收到以"/image/"
開頭的請求時,去指定的文件系統(tǒng)路徑imagepath
(D/image/)查找對應的靜態(tài)資源。例如:當請求"/image/test.jpg"
時,Spring MVC
將會嘗試在"D/image/"
目錄下查找并返回"test.jpg"
這個文件作為響應。
- 在
"D/image/"
下保存一個圖片
- 訪問
http://localhost:8080/image/test.png
可以看到映射成功了,其實在數(shù)據庫中存的就是"/image/"+imageName
。如果你要將項目部署到Linux
服務器上,需要把文件目錄修改成Linux
系統(tǒng)的,比如:
imagepath=/root/soft/images/
到此這篇關于SpringBoot 項目中的圖片處理策略:本地存儲與路徑映射的文章就介紹到這了,更多相關SpringBoot 本地存儲與路徑映射內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Java多態(tài)對象的類型轉換與動態(tài)綁定
這篇文章主要介紹了詳解Java多態(tài)對象的類型轉換與動態(tài)綁定,是Java入門學習中的基礎知識,需要的朋友可以參考下2015-09-09SpringBoot基于Redis實現(xiàn)短信登錄的操作
驗證碼登錄是非常常見的一種登錄方式,能夠簡化用戶登錄的過程,本文主要介紹了SpringBoot基于Redis實現(xiàn)短信登錄的操作,具有一定的參考價值,感興趣的可以了解一下2023-12-12SpringBoot整合Mybatis-plus關鍵詞模糊查詢結果為空
SpringBoot整合Mybatis-plus使用關鍵詞模糊查詢的時候,數(shù)據庫中有數(shù)據,但是無法查找出來,本文就來介紹一下SpringBoot整合Mybatis-plus關鍵詞模糊查詢結果為空的解決方法2025-04-04EasyUi+Spring Data 實現(xiàn)按條件分頁查詢的實例代碼
這篇文章主要介紹了EasyUi+Spring Data 實現(xiàn)按條件分頁查詢的實例代碼,非常具有實用價值,需要的朋友可以參考下2017-07-07