1. 程式人生 > >HTTP Status 400 - Required CommonsMultipartFile[] parameter 'XXX' is not present

HTTP Status 400 - Required CommonsMultipartFile[] parameter 'XXX' is not present

最近專案開發過程當中,因為一直測試使用的是Google瀏覽器,使用Spring的CommonsMultipartFile上傳檔案,一直正常就沒有在意,但是偶然換成IE(包括Edge)和世界之窗,突然出現如下問題


問題詳細描述:檔案上傳的時候在未選擇檔案直接提交form的時候,谷歌瀏覽器正常,而IE、Edge、世界之窗瀏覽器會報出"HTTP Status 400 - Required CommonsMultipartFile[] parameter 'XXX' is not present"的問題,這裡的問題就是在form當中存在file,而file沒有選擇檔案的情況。

問題原因:問題主要原因是在使用Google瀏覽器上傳的時候如果file為空Spring的controller層也會接收到一個CommonsMultipartFile[]的length為0的例項化的CommonsMultipartFile[],而在IE、Edge、世界之窗返回在Spring的Controller當中的CommonsMultipartFile[]接收到的是null值,如果方法中的引數:


@RequestParam("files") CommonsMultipartFile[] files
如果這個樣設定要求files這個引數是不能為空的,因此就會丟擲這個錯誤,因此需要修改成如下:

@RequestParam(value = "files",required = false) CommonsMultipartFile[] files
這個樣子設定files可以為null,就不會丟擲錯誤了
--------------------- 
作者:wocjy 
來源:CSDN 
原文:https://blog.csdn.net/wocjy/article/details/78949782 
版權宣告:本文為博主原創文章,轉載請附上博文連結!