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

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

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

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

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

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

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

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

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

2. 配置虛擬路徑映射

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

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

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

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

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

3. 編寫controller程序

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

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

/**
	* 頭像上傳
     * @param fileUpload 圖片資源
     * @return 圖映射的虛擬訪問(wèn)路徑
     */
@PostMapping("/api/profilePhotoUpload")
public String profilePhotoUpload(@RequestParam("file") MultipartFile fileUpload){
    //獲取文件名
    String fileName = fileUpload.getOriginalFilename();  
    //獲取文件后綴名。也可以在這里添加判斷語(yǔ)句,規(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. 測(cè)試

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

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

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

運(yùn)行接口測(cè)試,點(diǎn)擊apifox自帶的upload按鈕,選擇一個(gè)圖片上傳。

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

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

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

測(cè)試訪問(wèn)成功??!

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

相關(guān)文章

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

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

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

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

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

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

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

    Java的四種引用方式

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

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

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

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

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

    詳解MyBatis XML配置解析

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

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

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

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

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

    Spring注解之@Conditional使用解析

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

最新評(píng)論

阿克苏市| 山丹县| 东阿县| 工布江达县| 安国市| 万州区| 天水市| 加查县| 汪清县| 封开县| 仲巴县| 塘沽区| 吉隆县| 河曲县| 曲靖市| 永靖县| 额尔古纳市| 社旗县| 阳山县| 海伦市| 德安县| 浮梁县| 峨边| 河间市| 吴忠市| 鄂托克前旗| 商都县| 翼城县| 奇台县| 同仁县| 米易县| 金昌市| 营口市| 汝城县| 上栗县| 叙永县| 湘西| 阳江市| 隆林| 包头市| 铁力市|