使用MultipartFile的多个文件上传在Spring Boot中不起作用,从JSP在Controller中获取空数组 [英] Multiple file upload using MultipartFile not working in Spring Boot , getting empty array in Controller from JSP

查看:683
本文介绍了使用MultipartFile的多个文件上传在Spring Boot中不起作用,从JSP在Controller中获取空数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用MultipartFile上传多个文件.但是从Jsp页面中,当我选择多个文件并单击Submit时,我在控制器中得到了空数组.

I am using MultipartFile to upload multiple files. But from Jsp page when i select multiple files and click submit, I get empty array in controller.

这是我的代码段,

在pom.xml中

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency> 

CommonsMultipartResolver Bean配置.

CommonsMultipartResolver Bean Config.

     @Bean
      public CommonsMultipartResolver multipartResolver() {
          CommonsMultipartResolver resolver=new CommonsMultipartResolver();
          resolver.setDefaultEncoding("utf-8");
          resolver.setMaxUploadSize(999999999);
          return resolver;
      }

JSP代码

<form:form method="POST" action="/createRequest"
        enctype="multipart/form-data">
        <input type="file" name="fileUpload" multiple />
        <br>
        <br><br>
        Select User
        <select name="userDirectory">
            <c:forEach items="${userslist}" var="user">
                <option value=${user.userDirectory}>${user.userName}</option>
            </c:forEach>

        </select>

        <input type="submit" value="Upload Files">
    </form:form>

控制器代码

@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");
    }

在控制器中,文件JSP页面中的fileUpload.length为零. 谢谢您的帮助.

In controller fileUpload.length is coming zero from JSP page. Any help will be appriciated, Thanks.

推荐答案

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的请求都将在传递给Controller类之前由multipartResolver处理.

Add this configuration, with this configuration , any request with enctype as multipart/form-data will be handled by multipartResolver before passing on to the Controller class.

这篇关于使用MultipartFile的多个文件上传在Spring Boot中不起作用,从JSP在Controller中获取空数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆