我不知道如何解决问题。用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
答案 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 !!!!!!!!