最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)圖片上傳及本地訪問

 更新時間:2022年09月19日 10:28:36   作者:_多拉不懂A夢  
在SpringBoot項目中,處理靜態(tài)文件訪問尤其是實時更新的文件如商品圖片,可通過配置WebMvcConfig將本地文件映射到URL路徑上,以解決重啟項目才能訪問文件的問題,本文詳解如何保存和訪問這些文件,幫助開發(fā)者優(yōu)化項目文件管理

項目需求

最近做軟件架構平臺的課程實驗時遇到這樣的一個問題。需求是要修改商品的圖片,完成圖片的上傳,這本身并不難,使用form-data的格式進行交互就能完成。但是上傳后無法立馬訪問到才是最頭疼的問題。

一開始選擇是將圖片存到static目錄下面,當作靜態(tài)文件處理,但是后面發(fā)現(xiàn),只有重啟項目后,靜態(tài)文件加載到target中才能訪問到。

找了很多解決辦法,最終找到了合適的方案。

springboot靜態(tài)文件講解

springboot的靜態(tài)文件根據(jù)需求我們可以分成兩種

恒不變的項目靜態(tài)文件static:

  • 這種類型的文件是項目建立初就不會變動的文件,典型的有各種各樣的UI庫,bootstrapjquery,還有項目的圖標等等。
  • 這些文件最終會被加載到項目的target目錄下,作為類似項目的依賴包持續(xù)使用,差不多和maven依賴包一樣。

target目錄下的文件不需要進行任何配置盡可以通過域名加目錄直接訪問到。如localhost:8080/echarts/echarts.min.js

持續(xù)上傳更新的文件file:

  • 這一類文件是保存在系統(tǒng)服務端的數(shù)據(jù)文件,會不斷的收到用戶和管理員的CRUD操作處理,典型的有系統(tǒng)文檔,商品圖片等等。
  • 這些文件僅保存在服務端,但是不會進入項目目錄下,更不會加載到target中。

上傳文件

根據(jù)上面的描述,我們很清楚我們需要解決的就是如何存儲持續(xù)上傳更新的文件,以及如何才能訪問的到。

寫一個上傳文圖片的接口,并將圖片保存到本地的目錄項

public class Constant {
    public static final String ITEM_PICTURE_PATH = "D:\\Tools\\";
}
    @PostMapping("/importPicture")
    public MsgEntity importPicture(@RequestParam("file") MultipartFile file, @RequestParam("id") String id) throws FileNotFoundException {
        //獲得文件的后綴
        String filename = UUID.randomUUID() + Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf("."));
        //獲取文件存儲路徑
        File filepath = new File(Constant.ITEM_PICTURE_PATH + filename);
        String url = String.valueOf(filepath);
        try {
            //存文件
            file.transferTo(filepath);
        } catch (IOException e) {
            e.printStackTrace();
        }
        itemService.setPictureUrl("http://localhost:8080/temp-image/" + filename, id);
        return new MsgEntity("SUCCESS", "200", url);
    }

訪問文件

上傳文件已經(jīng)完成了,那么如何訪問到存儲在本地服務器的文件呢?

其實SpringBoot已經(jīng)很好的為我們解決了這個問題,我們只需要加上一點配置,就能將本地文件映射到url路徑上。

在properties中加上自定義配置

# 配置上傳圖片的路徑和訪問圖片圖片的路徑
upload.file.location=file:D:/Tools/
upload.file.path =/temp-image/**

編寫WebMvcConfig的配置類

@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {
    @Value("${upload.file.location}")
    private String fileLocation;
    @Value("${upload.file.path}")
    private String filePath;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
		//注冊配置類,使用addResourceHandlers方法,將本地路徑fileLocation映射到filePath路由上。
        registry.addResourceHandler(filePath).addResourceLocations(fileLocation);
        WebMvcConfigurer.super.addResourceHandlers(registry);
    }
}

這樣就可以在瀏覽器上 訪問了

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java類型轉換valueOf與parseInt區(qū)別探討解析

    Java類型轉換valueOf與parseInt區(qū)別探討解析

    這篇文章主要為大家介紹了Java類型轉換valueOf與parseInt區(qū)別探討解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • idea創(chuàng)建包含多個springboot module的maven project的方法

    idea創(chuàng)建包含多個springboot module的maven project的方法

    這篇文章主要介紹了idea創(chuàng)建包含多個springboot module的maven project的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • JAVA裝飾者模式(從現(xiàn)實生活角度理解代碼原理)

    JAVA裝飾者模式(從現(xiàn)實生活角度理解代碼原理)

    裝飾者模式可以動態(tài)地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更為靈活。這篇文章主要介紹了JAVA裝飾者模式的相關資料,需要的朋友可以參考下
    2016-12-12
  • java必學必會之this關鍵字

    java必學必會之this關鍵字

    java必學必會之this關鍵字,java中this的用法進行了詳細的分析介紹,感興趣的小伙伴們可以參考一下
    2015-12-12
  • JAVA設計模式---單例模式你知道嗎

    JAVA設計模式---單例模式你知道嗎

    這篇文章主要給大家介紹了關于Java單例模式,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2021-09-09
  • String的兩種初始化方法講解

    String的兩種初始化方法講解

    今天小編就為大家分享一篇關于String的兩種初始化方法講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • SpringBoot集成Jasypt敏感信息加密的操作方法

    SpringBoot集成Jasypt敏感信息加密的操作方法

    這篇文章主要介紹了SpringBoot集成Jasypt加密敏感信息,包括敏感信息加密的作用,項目集成Jasypt方式詳解,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • spring mvc @PathVariable綁定URI模板變量值方式

    spring mvc @PathVariable綁定URI模板變量值方式

    這篇文章主要介紹了spring mvc @PathVariable綁定URI模板變量值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 如何用Stream解決兩層List屬性求和問題

    如何用Stream解決兩層List屬性求和問題

    這篇文章主要介紹了如何用Stream解決兩層List屬性求和問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 一文帶你搞懂Java8的LocalDateTime

    一文帶你搞懂Java8的LocalDateTime

    LocalDateTime?是Java8中新加入的日期時間類,現(xiàn)在都?Java20?了,不會還有人沒用過?LocalDateTime?吧?今天給大家演示一下?LocalDateTime?的常用方法
    2023-04-04

最新評論

米泉市| 商城县| 武乡县| 衡南县| 海口市| 三亚市| 桐柏县| 东山县| 西峡县| 新昌县| 莆田市| 句容市| 扎赉特旗| 永泰县| 航空| 沾益县| 平阴县| 汝南县| 滦平县| 鄂温| 玉门市| 汕尾市| 华安县| 商洛市| 南雄市| 昆山市| 子洲县| 虞城县| 久治县| 宜黄县| 手游| 新化县| 边坝县| 商水县| 若尔盖县| 甘孜县| 安义县| 合阳县| 高安市| 湛江市| 陇南市|