Postman - 不存在必需的MultipartFile参数 - Spring,Java

时间:2016-08-31 08:00:10

标签: java spring tomcat multipartform-data postman

修改

这个问题不同于:jQuery Ajax file upload : Required MultipartFile parameter 'file' is not present 不同之处在于他们使用jQuery和Ajax,而我使用的是REST客户端 - “Postman”

因此,我不得不将Content-Type设置为false,而是必须完全删除它。

另外,在搜索“Postman”的答案时,我相信人们会跳过其中包含jQuery和Ajax字样的问题,这就是我发生的事情

结束修改

我在Java8上使用Spring MVC Web应用程序并在tomcat7.x上运行它。 Spring版本是:4.2.6.RELEASE,javax servlet版本是:3.0.1

context.xml中

...

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

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

</bean>

...

controller.java

...
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseStatus(value = HttpStatus.CREATED)
public void importTranslations(@RequestParam (name = "myfile") MultipartFile myfile) {
    myService.doSomething(myfile);
}
...

以下是问题

我使用Postman发送* .zip文件。路径是正确的,一切看起来都不错,但是spring抛出异常: “必需的MultipartFile参数'myfile'不存在”

以下是Postman的截图: enter image description here 所以文件在那里,密钥名称是正确的。 一切似乎都没问题,然而,我收到了错误

1 个答案:

答案 0 :(得分:7)

在stackoverflow中进行了大量搜索之后,我发现了这个问题:jQuery Ajax file upload : Required MultipartFile parameter 'file' is not present

我尝试将Postman中的Content-Type标头设置为false并出错。 当我删除Content-Type标题时,它工作!!

希望这有助于某人