Postman沒有選擇文件,但是後端還接收到的文件

一、原因分析

Postman往後端傳輸文件,沒有選擇文件,但是後端還接收到的文件。但文件名爲空,大小爲0;

原因: 是因爲請求頭裏多了一行Content-Type:multipart/form-data,Postman向後端指明,我傳輸的是文件類型的,但是又沒有給後端傳出文件。則後端會接接收到一個空文件。

二、請求方式驗證

下面按三種請求,去看一下這個的區別。

後端接收代碼:

@RequestMapping(value = "/file", method = {RequestMethod.POST})
public void addFile(@RequestParam MultipartFile file) throws IOException {
    String name = file.getName();
    byte[] bytes = file.getBytes();
    int length = bytes.length;
    String originalFilename = file.getOriginalFilename();
    String contentType = file.getContentType();
  
    logger.info("getName:{}", name);
    logger.info("bytes.length:{}", length);
    logger.info("getOriginalFilename:{}",originalFilename);
    logger.info("getContentType:{}",contentType);
}

上傳方式一:正常傳輸

Postman請求頁面:
在這裏插入圖片描述

請求頭:
在這裏插入圖片描述

後端打印結果:
在這裏插入圖片描述

上傳方式二:添加請求頭,但是不選擇文件

Postman請求頁面:
在這裏插入圖片描述

請求頭:

在這裏插入圖片描述

後端打印結果:
在這裏插入圖片描述
傳輸一個空文件,大小爲0,文件名爲空

上傳方式三:未添加請求頭,未選擇文件

Postman請求頁面:
在這裏插入圖片描述

請求頭:

在這裏插入圖片描述

後端打印結果:
在這裏插入圖片描述
報出錯誤,當前的請求不是MultipartFile的請求方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章