关于MultipartFile的多文件上传

今天遇到一个问题,就是使用MultipartFile进行多文件上传时,报以下异常:

java.lang.NoSuchMethodException: [org.springframework.web.multipart.MultipartFile;.<init>()
at java.lang.Class.getConstructor0(Class.java:2721)
at java.lang.Class.getDeclaredConstructor(Class.java:2002)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104)
说是找不到这个方法,然后我的控制器的请求参数是这样写的:

public String uploadHttpServletRequest request,HttpServletResponse response,MultipartFile[] videoFiles){..................}

单个文件上传直接用MultipartFile就行了,多文件上传需要使用<span style="font-family: Arial, Helvetica, sans-serif;">MultipartFile[],但是这样写请求参数就报了上面那个异常,</span>
经查找资料得知应该这样写,加上@RequestParam

public String multipart(HttpServletRequest request,HttpServletResponse response,
			@RequestParam(value="videoFiles",required=true)MultipartFile[] videoFiles){}
问题解决!


但是我不是很明白为什么要加上@RequestParam注解,这个注解的作用不就是绑定url的参数,然后将url对应参数的值注入给方法的参数么?如果url的参数名和方法的参数名一致不是可以不用写的么,spring不是会自动set进去的么?单个文件上传时,我方法的请求参数直接写

MultipartFile  videoFiles也是可以正常通过的,但是为什么多文件上传时,就一定要加上@RequestParam呢,虽然问题解决了,但是不是很明白。。。


希望懂的人回复一下。。。

猜你喜欢

转载自blog.csdn.net/q358543781/article/details/45055125