一、原因分析
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的請求方式。