欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用MultipartFile實現(xiàn)文件上傳功能

 更新時間:2024年06月14日 09:15:11   作者:Cz范特西  
這篇文章主要介紹了使用MultipartFile實現(xiàn)文件上傳功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

MultipartFile是spring類型,代表HTML中form data方式上傳的文件,包含二進制數(shù)據(jù)+文件名稱。

在文件上傳這方面能幫助我們快速簡潔實現(xiàn)。

使用

1、yml配置文件

spring:
  servlet:
    multipart:
      max-file-size: 10MB     #單個最大文件大小,默認是1MB
      max-request-size: 100MB   #總請求文件大小

2、API介紹

	multipartFile.getContentType()//在控制臺打印文件的類型
	multipartFile.getName()//返回文件的名稱
	multipartFile.getOriginalFilename()//返回文件的原文件名
	multipartFile.getSize() //單位為字節(jié)
	multipartFile.getInputStream() //文件轉換為輸入流
	multipartFile.transferTo(new File("D:/"));
		/*上傳的文件需要保存的路徑和文件名稱,
		  本質(zhì)上還是使用了流,只不過是封裝了步驟,相當于:
			File file = new File("D:/");
	        file.createNewFile();
	        FileOutputStream stream = new FileOutputStream(file);
	        stream.write(multipartFile.getBytes());
	        stream.close();
	    */

3、文件上傳示例

@RestController
@Slf4j
public class UploadTest {

    @RequestMapping("/upload")
    public String upLoad(@RequestPart("file") MultipartFile multipartFile){
        log.info("文件上傳開始");
        log.info("文件{}",multipartFile.getOriginalFilename());
        
        if (!multipartFile.isEmpty()){
            try {
                //上傳的文件需要保存的路徑和文件名稱,路徑需要存在,否則報錯
                multipartFile.transferTo(new File("D:/"++multipartFile.getOriginalFilename()));
            } catch (IllegalStateException | IOException e){
                e.printStackTrace();
                return "上傳失敗";
            }
        } else {
            return "請上傳文件";
        }
        return "上傳成功";
    }
}

注意:

@RequestPart("file")主要用來處理content-type為 multipart/form-data 或 multipart/mixed stream 發(fā)起的請求,可以獲取請求中的參數(shù)。

因此在此處,前端上傳文件時,key為file,value為文件。

4、postman測試

由于本人只會后端不會做前端,懶得查資料寫前端上傳文件功能,就使用postman進行測試。

1、將請求方式改為post。

2、Headers中設置設置key=Content-Type,value=multipart/form-data(默認已設置)。

3、在Body中選擇form-data,選擇File格式,KEY填寫在后端代碼中編寫的@RequestPart(“file”)中的file,value選擇你想要上傳的文件。

4、點擊send即可實現(xiàn)上傳功能。

文件下載

既然文件上傳功能有了,就在此介紹一下如何實現(xiàn)文件下載功能。

@RestController
public class DownTest {

    @RequestMapping("/download")
    public ResponseEntity<Object> download() throws IOException {
        //提供下載的文件的路徑
        FileSystemResource file = new FileSystemResource("D:\\cloud/pom.xml");

        HttpHeaders headers = new HttpHeaders();
        headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
        //這里定制下載文件的名稱
        headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getFilename()));
        headers.add("Pragma", "no-cache");
        headers.add("Expires", "0");

        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(file.contentLength())
                .contentType(MediaType.parseMediaType("application/octet-stream"))//以二進制流的形式返回
                .body(new InputStreamResource(file.getInputStream()));
    }
}

總結

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

相關文章

  • RestTemplate請求失敗自動重啟機制精講

    RestTemplate請求失敗自動重啟機制精講

    這篇文章主要為大家介紹了RestTemplate請求失敗自定義處理的方法,自動重試的機制精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多所進步,早日升職加薪
    2022-03-03
  • SpringBoot實現(xiàn)文件上傳并返回url鏈接的示例代碼

    SpringBoot實現(xiàn)文件上傳并返回url鏈接的示例代碼

    文件上傳,當我們選擇了某一個圖片文件之后,這個文件就會上傳到服務器,從而完成文件上傳的操作,是指將本地圖片、視頻、音頻等文件上傳到服務器,供其他用戶瀏覽或下載的過程,本文給大家介紹了SpringBoot實現(xiàn)文件上傳并返回url鏈接,需要的朋友可以參考下
    2024-11-11
  • JAVAEE Filter 過濾器設置是否緩存實例詳解

    JAVAEE Filter 過濾器設置是否緩存實例詳解

    網(wǎng)頁中,每次的客戶端訪問服務器,有部分不用重復請求的,這樣可以減輕服務器的工作量。那么如何設置客戶端是否都緩存呢?接下來通過本文給大家介紹JAVAEE Filter 過濾器設置是否緩存的實例,感興趣的朋友一起學習吧
    2016-05-05
  • 30分鐘入門Java8之默認方法和靜態(tài)接口方法學習

    30分鐘入門Java8之默認方法和靜態(tài)接口方法學習

    這篇文章主要介紹了30分鐘入門Java8之默認方法和靜態(tài)接口方法學習,詳細介紹了默認方法和接口,有興趣的可以了解一下。
    2017-04-04
  • springboot解析自定義yml方式

    springboot解析自定義yml方式

    這篇文章主要介紹了springboot解析自定義yml方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • springcloud gateway自定義斷言規(guī)則詳解,以后綴結尾進行路由

    springcloud gateway自定義斷言規(guī)則詳解,以后綴結尾進行路由

    這篇文章主要介紹了springcloud gateway自定義斷言規(guī)則詳解,以后綴結尾進行路由,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot @JsonDeserialize自定義Json序列化方式

    SpringBoot @JsonDeserialize自定義Json序列化方式

    這篇文章主要介紹了SpringBoot @JsonDeserialize自定義Json序列化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java調(diào)用opencv身份證號識別詳解

    java調(diào)用opencv身份證號識別詳解

    這篇文章主要為大家詳細介紹了java如何調(diào)用opencv實現(xiàn)身份證號的識別,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • Java mongodb連接配置實踐

    Java mongodb連接配置實踐

    這篇文章主要介紹了Java mongodb連接配置實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • MyBatis如何使用selectKey返回主鍵的值

    MyBatis如何使用selectKey返回主鍵的值

    這篇文章主要介紹了MyBatis如何使用selectKey返回主鍵的值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論