簡體   English   中英

使用MultipartFile的多個文件上傳在Spring Boot中不起作用,從JSP在Controller中獲取空數組

[英]Multiple file upload using MultipartFile not working in Spring Boot , getting empty array in Controller from JSP

我正在使用MultipartFile上傳多個文件。 但是,當我選擇多個文件並單擊提交時,從Jsp頁面中,我在控制器中得到了空數組。

這是我的代碼段,

在pom.xml中

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

CommonsMultipartResolver Bean配置。

     @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為零。 任何幫助將被申請,謝謝。

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處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM