java - Spring MVC 文件上传将 null 传递给 Controller

标签 java spring-mvc file-upload

我有一个 Spring MVC 应用程序,当我尝试上传多部分文件时,null 值会传递到 Controller 。所有其他文本参数都正确传递,只有文件输入作为空传递。我在我的项目中包含了 MultipartResolver bean 和commons-io 以及commons-fileupload 依赖项。我已经检查过它已在浏览器的请求中传递,但未绑定(bind)在 modelAttribute 中。

这是我的观点的代码片段

<form:form method="post" enctype="multipart/form-data" action="${pageContext.request.contextPath}/profile/secure/saveIdentity" commandName="profileModel">

    <span><b>Upload your passport photo</b></span>
    <form:input  path="passportPhotograph" type="file"  id="passportPhoto"/> 
</form:form>

这是我的 Controller 方法的片段

@RequestMapping(value = "/secure/saveIdentity", method = RequestMethod.POST)
public ModelAndView saveIdentity(@ModelAttribute("profileModel") @Valid ProfileModel profileModel,HttpServletRequest request){

    MultipartFile photo = profileModel.getPassportPhotograph();
    if(photo != null){ do something.... }
}

这是我的 ProfileModel.java 类片段

public class ProfileModel{

    private MultipartFile passportPhotograph;

    public MultipartFile getPassportPhotograph() {
        return passportPhotograph;
    }

    public void setPassportPhotograph(MultipartFile passportPhotograph) {
        this.passportPhotograph = passportPhotograph;
    }
    ............
}

在我的调度程序 servlet 文件中,我声明了 MultipartResolver bean:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="99999999999"/>
</bean>

最后在我的 build.gradle 文件中添加了这些依赖项

compile('commons-io:commons-io:2.0.1')
compile('commons-fileupload:commons-fileupload:1.3.1')

毕竟它会将 null 传递给我的 Controller ,即使它包含在 HttpServletRequest 中。我应该做什么来解决这个问题。预先感谢您的帮助。

最佳答案

您需要使用@RequestMapping(value = "/secure/saveIdentity", method = RequestMethod.POST, headers = ("content-type=multipart/*"), produces = "application/json", consumes = "image/*") .

关于java - Spring MVC 文件上传将 null 传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44763698/

相关文章:

java - 从 REST API 返回 ResponseEntity<byte[]> 时出现问题。为什么?

java - 如果请求映射方法返回列表,Spring Boot如何解析 View 名称?

java - 无法启动应用程序。无法加载指定的文件/url。如何重建快捷方式?

java - 如何添加数组中的数字以便输出高分

java - 如何设置 ActionListener 来监听另一个 ActionListener 来触发不同类中的事件?

java - 如何实现递归的拖放文件/文件夹上传?

使用 Nestjs 和 Papa Parse 处理 CSV 文件

java - 下面这两个有什么区别?

java - WebView 只显示网站的一部分/隐藏网站的一部分

file-upload - 如何将base64编码的文件发送到PlayFramework服务器?