【问题标题】:spring-boot spring-mvc apache-commons-fileupload: Required MultipartFile parameter 'file' is not present errorspring-boot spring-mvc apache-commons-fileupload:必需的 MultipartFile 参数“文件”不存在错误
【发布时间】:2014-12-25 00:19:02
【问题描述】:

我正在尝试制作此链接的示例:https://github.com/spring-guides/gs-uploading-files 与 Apcahe commons-fileupload一起工作,但错误:Required MultipartFile parameter 'file' is not present 正在发生。

我在示例中所做的配置是:

1 - 在pom.xml中添加commons-fileupload的依赖:

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

2 - 在Application.java 中配置multipartResolver()

@Bean
public MultipartResolver multipartResolver() {
  return new CommonsMultipartResolver();
}

没有这个配置一切正常,因为 Spring 使用 org.springframework.web.multipart.support.StandardServletMultipartResolver 处理上传,但我想使用 commons-fileupload

有什么我想念的吗?

谢谢。

@avaz

【问题讨论】:

  • 如果可行,为什么要使用 commons-fileupload?
  • @M.Deinum,基本上有两个原因:1 - 可以将 Spring 4.x 与 Servlet 2.5 容器一起使用,它不支持新的 Servlet 3.0 部分文件上传,我有这个需要。 2 - Spring 文档说有可能Spring Reference,我已按照文档中的所有说明进行操作,但无法正常工作。这可能是我遗漏的东西,或者是 Spring 开发人员可能想知道的一些 Spring 错误。你知道它为什么不工作吗?

标签: spring-mvc spring-boot apache-commons-fileupload


【解决方案1】:

你应该像下面这样禁用MultipartAutoConfiguration

@EnableAutoConfiguration(exclude = MultipartAutoConfiguration.class)

请看DOC

【讨论】: