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 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/a137268431/article/details/83618330