使用MultipartFile在Spring Boot中无法上传多个文件,从JSP中获取Controller中的空数组
我正在使用MultipartFile上传多个文件。 但是当我从Jsp页面选择多个文件并单击提交时,我在控制器中得到空数组。
这是我的代码片段,
在pom.xml中
commons-fileupload commons-fileupload 1.3.3
CommonsMultipartResolver Bean配置。
@Bean public CommonsMultipartResolver multipartResolver() { CommonsMultipartResolver resolver=new CommonsMultipartResolver(); resolver.setDefaultEncoding("utf-8"); resolver.setMaxUploadSize(999999999); return resolver; }
JSP代码
控制器代码
@PostMapping(value = "/createRequest") public ModelAndView createRequest(@RequestParam("fileUpload") MultipartFile[] fileUpload, @RequestParam("userDirectory") String userDirectory) throws IOException { log.info("In createRequest method"); if (fileUpload != null && fileUpload.length > 0) { Flow not coming here because fileUpload.length coming zero. } return new ModelAndView("success"); }
在控制器中,fileUpload.length从JSP页面变为零。 任何帮助都会得到满足,谢谢。
private void initMultipartResolver(ApplicationContext context) { try { this.multipartResolver = ((MultipartResolver)context.getBean("multipartResolver", MultipartResolver.class)); if (this.logger.isDebugEnabled()) { this.logger.debug("Using MultipartResolver [" + this.multipartResolver + "]"); } } catch (NoSuchBeanDefinitionException ex) { this.multipartResolver = null; if (this.logger.isDebugEnabled()) this.logger.debug("Unable to locate MultipartResolver with name 'multipartResolver': no multipart request handling provided"); } }
添加此配置,使用此配置,任何带有enctype的请求作为multipart / form-data将由multipartResolver处理,然后再传递给Controller类。