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

spring?boot實現(xiàn)圖片上傳到后臺的功能(瀏覽器可直接訪問)

 更新時間:2022年04月24日 10:26:33   作者:紙照片  
這篇文章主要介紹了spring?boot實現(xiàn)圖片上傳到后臺的功能(瀏覽器可直接訪問),需要的朋友可以參考下

1. 配置上傳文件最大數(shù)值

默認(rèn)情況下,在spring boot嵌入的tomcat限制了上傳文件的大小,在spring boot的我官方文檔中說明,每個文件的最大配置為1Mb,單次請求的總文件數(shù)不能大于10Mb。

這意味著如果你上傳的圖片大于1Mb,會被攔截下來,無法正常保存到后臺,并拋出一個錯誤,返回狀態(tài)碼:500。

The field file exceeds its maximum permitted size of 1048576 bytes.

需要根據(jù)實際情況更改這兩個數(shù)值。(yaml配置文件)

spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 10MB
      max-request-size: 100MB

2. 配置虛擬路徑映射

后端程序接收到圖片資源后,會將圖片保存到硬盤中的一個路徑下,如果我們想通過URL直接訪問到圖片資源,就需要配置一個虛擬路徑去映射這個真實存在的物理路徑。

同樣是在配置文件中,添加物理存儲路徑以及映射到項目中的虛擬路徑。

SavePath:
  ProfilePhoto: 'D:\Test\ProfilePhoto\'  #圖標(biāo)存儲路徑
  ProfilePhotoMapper: '/profilePhoto/'  #圖標(biāo)的映射路徑

添加一個spring boot配置程序,這樣就形成了一對映射關(guān)系。

@Configuration
public class SpringbootConfigure implements WebMvcConfigurer {
    //@Value可以將配置文件的內(nèi)容自動注入到屬性內(nèi)
    @Value("${SavePath.ProfilePhoto}")
    private String ProfilePhotoPath;   //圖標(biāo)物理存儲路徑
    @Value("${SavePath.ProfilePhotoMapper}")
    private String ProfilePhotoMapperPath;   //圖標(biāo)映射路徑
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry){
        registry.addResourceHandler(ProfilePhotoMapperPath+"**").addResourceLocations("file:"+ProfilePhotoPath);
    }
}

3. 編寫controller程序

作示例使用,具體的返回數(shù)據(jù)自行改寫。

@Value("${SavePath.ProfilePhoto}")
private String ProfilePhotoSavePath;   //圖標(biāo)圖片存儲路徑
@Value("${SavePath.ProfilePhotoMapper}")
private String ProfilePhotoMapperPath;   //圖標(biāo)映射路徑

/**
	* 頭像上傳
     * @param fileUpload 圖片資源
     * @return 圖映射的虛擬訪問路徑
     */
@PostMapping("/api/profilePhotoUpload")
public String profilePhotoUpload(@RequestParam("file") MultipartFile fileUpload){
    //獲取文件名
    String fileName = fileUpload.getOriginalFilename();  
    //獲取文件后綴名。也可以在這里添加判斷語句,規(guī)定特定格式的圖片才能上傳,否則拒絕保存。
    String suffixName = fileName.substring(fileName.lastIndexOf("."));  
    //為了避免發(fā)生圖片替換,這里使用了文件名重新生成
    fileName = UUID.randomUUID()+suffixName;
    try {
        //將圖片保存到文件夾里
        fileUpload.transferTo(new File(ProfilePhotoSavePath+fileName));
        return ProfilePhotoMapperPath+fileName;
    } catch (Exception e) {
        e.printStackTrace();
        return "";
    }
}

4. 測試

上傳圖片有很多種方式,比如自行寫一段html,也可以使用idea自帶的http client工具

我這里使用apifox工具進(jìn)行測試.

數(shù)據(jù)類型使用form-data,參數(shù)寫"file",這個參數(shù)要與controller程序中寫的請求參數(shù)一致。參數(shù)類型選擇file,即文件上傳。

運行接口測試,點擊apifox自帶的upload按鈕,選擇一個圖片上傳。

請求成功后,接收到回應(yīng)信息中的圖像映射路徑。

打開配置的存儲路徑,可以看到圖片已經(jīng)被保存。

測試url請求。注意這里的程序只響應(yīng)出了項目訪問路徑的可變部分,使用時需要與項目路徑的固定訪問路徑進(jìn)行拼接,也可以修改程序一并返回。

測試訪問成功??!

到此這篇關(guān)于spring boot實現(xiàn)圖片上傳到后臺的功能(瀏覽器可直接訪問)的文章就介紹到這了,更多相關(guān)spring boot圖片上傳到后臺內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java日常練習(xí)題,每天進(jìn)步一點點(43)

    Java日常練習(xí)題,每天進(jìn)步一點點(43)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • SpringCloud微服務(wù)的調(diào)用與遠(yuǎn)程調(diào)用測試示例

    SpringCloud微服務(wù)的調(diào)用與遠(yuǎn)程調(diào)用測試示例

    這篇文章主要介紹了SpringCloud微服務(wù)的調(diào)用與遠(yuǎn)程調(diào)用測試示例,服務(wù)調(diào)用者-可以暫時認(rèn)為是與用戶交互的角色(因為存在微服務(wù)之間的調(diào)用),可以根據(jù)該用戶的類型將其賦予不同的服務(wù)調(diào)用權(quán)限,通過一次http請求訪問調(diào)用對應(yīng)的微服務(wù)獲取想要的數(shù)據(jù)
    2023-04-04
  • Springboot開發(fā)之利用Docker和Kubernetes部署微服務(wù)

    Springboot開發(fā)之利用Docker和Kubernetes部署微服務(wù)

    這篇文章主要介紹了如何將Spring Boot開發(fā)的微服務(wù)通過Docker容器化,并使用Kubernetes進(jìn)行部署和管理,幫助讀者掌握現(xiàn)代云原生應(yīng)用的完整開發(fā)部署流程,有需要的可以了解下
    2025-03-03
  • Java的四種引用方式

    Java的四種引用方式

    這篇文章主要介紹了Java的四種引用方式,Java的引用方式主要包括強(qiáng)引用、軟引用、弱引用、虛引用;下面文章便來詳細(xì)介紹這四種引用方式,需要的朋友可以參考一下
    2021-10-10
  • 關(guān)于ScheduledThreadPoolExecutor不執(zhí)行的原因分析

    關(guān)于ScheduledThreadPoolExecutor不執(zhí)行的原因分析

    這篇文章主要介紹了關(guān)于ScheduledThreadPoolExecutor不執(zhí)行的原因分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java?的訪問修飾符public,protected,private(封裝、繼承)

    Java?的訪問修飾符public,protected,private(封裝、繼承)

    這篇文章主要介紹了Java?的訪問修飾符public,protected,private(封裝、繼承),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 詳解MyBatis XML配置解析

    詳解MyBatis XML配置解析

    這篇文章主要介紹了詳解MyBatis XML配置解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中的CyclicBarrier循環(huán)柵欄解析

    Java中的CyclicBarrier循環(huán)柵欄解析

    這篇文章主要介紹了Java中的CyclicBarrier循環(huán)柵欄解析,從字面上的意思可以知道,這個類的中文意思是"循環(huán)柵欄",大概的意思就是一個可循環(huán)利用的屏障,它的作用就是會讓所有線程都等待完成后才會繼續(xù)下一步行動,需要的朋友可以參考下
    2023-12-12
  • Java 基礎(chǔ)語法之解析 Java 的包和繼承

    Java 基礎(chǔ)語法之解析 Java 的包和繼承

    包是組織類的一種方式,繼承顧名思義,比如誰繼承了長輩的產(chǎn)業(yè),其實這里的繼承和我們生活中的繼承很類似,下面文字將為大家詳細(xì)介紹Java的包和繼承
    2021-09-09
  • Spring注解之@Conditional使用解析

    Spring注解之@Conditional使用解析

    這篇文章主要介紹了Spring注解之@Conditional使用解析,@Conditional注解可以說是SpringBoot的條件注解,表示組件只有在所有指定條件都匹配時才有資格注冊,條件是可以在 bean 定義注冊之前??以編程方式確定的任何狀態(tài),需要的朋友可以參考下
    2024-01-01

最新評論

玉田县| 永城市| 禄丰县| 蕉岭县| 西城区| 株洲市| 彰化县| 沁阳市| 巫溪县| 铁力市| 梓潼县| 定兴县| 青田县| 阳谷县| 大竹县| 平凉市| 平利县| 张家口市| 西青区| 珲春市| 黔西县| 馆陶县| 宝兴县| 鹤岗市| 孝义市| 侯马市| 河北省| 安陆市| 汕头市| 荆州市| 东源县| 定南县| 东乌珠穆沁旗| 亳州市| 客服| 丰宁| 翁源县| 股票| 梅州市| 越西县| 东台市|