91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Springboot2.3中如何訪問本地路徑下靜態資源

發布時間:2020-08-13 11:33:47 來源:億速云 閱讀:633 作者:小新 欄目:開發技術

小編給大家分享一下在Springboot2.3中如何訪問本地路徑下靜態資源,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

最近在做的一個項目中有一個比較奇葩的需求:

要在springboot中,上傳本地的圖片進行展示

我的第一反應是,直接在數據庫字段加一個存儲本地路徑的字段,然后用thymeleaf的th:src渲染到前端就好了嘛!

理想很豐滿,但現實卻很骨感~

前端報了這樣的錯誤Not allowed to load local resource

在Springboot2.3中如何訪問本地路徑下靜態資源

于是我想到了可以使用IO將圖片先上傳到static/images目錄下,這樣就不會出現禁止訪問本地路徑的問題了

但是這樣實現,問題又來了:上傳后的圖片必須重啟springboot,才能進行展示,否則無法加載

這個應該是因為springboot在初始化時加載靜態資源,運行時導入的資源只能在再次初始化時加載

于是,我苦思冥想,查閱了多方資料,終于使用本地虛擬路徑的方式,解決了這個問題

正片開始:

1.首先配置一個配置類

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyConfigurer implements WebMvcConfigurer {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/image/**").addResourceLocations("file:E:/vote_images/");
  }
}

addResourceHandler是指你設置的虛擬路徑,前端展示頁面時填入這個路徑來進行訪問

addResourceLocations是指實際的本地路徑,你需要代理給虛擬路徑來訪問的路徑

2. IO實現文件上傳

//如果文件夾不存在,創建文件夾
File file=new File("E:\\vote_images");
if(!file.exists()){
  file.mkdir();
}
//文件的上傳
try (InputStream input = new FileInputStream(new File(judge));
   OutputStream output = new FileOutputStream("E:\\vote_images\\" + num + ".jpg")
   ) {
  byte[] buf = new byte[1024];
  int bytesRead;
  while ((bytesRead = input.read(buf)) != -1) {
    output.write(buf, 0, bytesRead);
  }
} catch (IOException e) {
  e.printStackTrace();
}
//設置路徑字段
o.setPath("\\image\\" + (num++) + ".jpg");
//增加數據
optionsService.insert(o);

3.前端渲染頁面

<img height="150px" width="225px" th:src="@{${opt.getPath()}}">

這樣就成功實現需求啦

以上是在Springboot2.3中如何訪問本地路徑下靜態資源的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹寨县| 安徽省| 喀喇沁旗| 石棉县| 建阳市| 华亭县| 泽州县| 乾安县| 延庆县| 开鲁县| 陆良县| 泉州市| 库尔勒市| 佛冈县| 本溪市| 毕节市| 永康市| 大埔区| 获嘉县| 含山县| 永胜县| 和顺县| 莆田市| 博乐市| 武夷山市| 武川县| 涞源县| 旬邑县| 荥经县| 额尔古纳市| 星座| 康保县| 扶沟县| 太康县| 濮阳县| 广饶县| 页游| 会泽县| 大足县| 隆子县| 大田县|