必需的MultipartFile参数' file'尝试上传文件时出现错误

时间:2017-04-23 07:56:33

标签: java spring-mvc file-upload

我不知道如何解决问题。用Google搜索数小时没有成功:

简单的例子: 我在jsp中的表单

<form method="post" action="/asd" enctype="multipart/form-data">
    <input type="file" class="file" name="file"/>
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>    
    <input type="submit" value="Upload">    
</form>

我的控制器方法

@RequestMapping(value = "/asd", method = RequestMethod.POST)
    public String handleFileUpload(
            @RequestParam("file") MultipartFile file){    
        System.out.print(file);    
        return "string";    
    }

我的上下文xml文件

 <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- max upload size in bytes -->
        <property name="maxUploadSize" value="20971520" /> <!-- 20MB -->

        <!-- max size of file in memory (in bytes) -->
        <property name="maxInMemorySize" value="1048576" /> <!-- 1MB -->

    </bean>

我的pom.xml

<dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version> <!-- makesure correct version here -->
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>

我甚至添加了allowCasualMultipartParsing =&#34; true&#34;到我服务器的每个context.xml,如下所示:

<Context reloadable="true" allowCasualMultipartParsing="true">

但错误仍然存​​在,我不知道自己做错了什么:

  

HTTP状态400 - 错误请求

     

输入状态报告

     

消息必需的MultipartFile参数&#39; file&#39;不存在

     

描述服务器不能或不会处理请求   被认为是客户错误的东西(例如,畸形   请求语法,无效请求消息框架或欺骗性请求   路由)。

     

Apache Tomcat / 8.5.12

1 个答案:

答案 0 :(得分:0)

试试这个,

在web.xml文件中添加波纹管过滤器

Web.xml中

<!-- Support for File Upload And Download -->
 <filter>
<display-name>springMultipartFilter</display-name>
<filter-name>springMultipartFilter</filter-name>
<filter- class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>springMultipartFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

并且在您的上下文文件中使用filterMultipartResolver而不是multipartResolver,因为Spring Security依赖关系如下所示

<!-- Support For File Upload And Download -->
<bean id="filterMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="100000000" />

</bean>

是的Cheerssssssss !!!!!!!!