当前位置: 首页 > 知识库问答 >
问题:

Spring mvc多部分文件上载

秋建义
2023-03-14

关于Spring MVC应用程序中的多部分文件上传问题,我已经看到了很多关于stackoverflow的答案。我一步一步地确保我不会重复别人犯过的错误。

这是我的表格

<form class="form-horizontal" data-toggle="validator"
                        id="track_existing_repair"
                        method="post"
                        action="/euo/testUpload.htm"
                        enctype="multipart/form-data">

...
        <div class="form-group required">
                        <label class="control-label col-sm-4" for="proofOfPurchaseInput">Select File:</label>
                        <div class="col-sm-8">
                        <input  name="proofOfPurchase" 
                            id="proofOfPurchaseInput" 
                            type="file" 
                            required/>
                    </div>
                </div>
...
</form>

在pom文件中我有依赖项

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.2</version>
</dependency>
<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>
@RequestMapping(value = {"/testUpload"},headers = "Content-Type=multipart/form-data", method = RequestMethod.POST)
public String testUpload( 
            @RequestPart(value = "proofOfPurchase", required = false) MultipartFile proofOfPurchaseFile
            ,HttpServletRequest request
            ) throws InvalidFormatException, IOException {
if(proofOfPurchaseFile !=  null){
    readFile(proofOfPurchaseFile);
}
return NAV_HOME;
}

因此,当我停在调试器中时,request对象显示文件已被接收,甚至存储在jBoss临时文件夹中,我并不感到惊讶。

你能指出Spring看不到上传的文件我会错过什么吗?

共有1个答案

殳越
2023-03-14

问题出现在我们也使用Struts的遗留项目中。事实证明,struts dispatcher与spring CommonsMultipartResolver有冲突。

web.xml中删除所有struts、Servlet和过滤器之后,一切都开始工作了。

 类似资料:
  • 我试图编写完整的多部分流,从客户端使用Spring restTemplate发送多部分请求,从服务器端自动将不同部分解析为对象(我使用JAXB进行对象封送),并以多部分形式返回响应。 我能够实现几乎所有的流,但是我不能从spring Controller中用jaxb对象发送多部分响应。 试图使he FormHttpMessageConverter正确地编写部分,但这没有帮助 是否有任何方法使Spr

  • Im使用Spring Boot,并希望使用控制器接收多部分文件上传。当发送文件时,我一直得到错误415不支持的内容类型响应,并且控制器从未到达 我尝试在HTML/JSP页面和使用RESTTemplate的独立客户端应用程序中使用Form:Action发送。所有尝试的结果都是一样的 从multipart文档看来,边界参数必须添加到multipart上载,但这似乎与控制器接收不匹配 我的控制器方法设置

  • 我正在Spring controller中努力实现多部分文件上传。我读过很多问题,谷歌,但似乎什么都不管用。 我明白了 我的BE控制器: FE,angularJS: HTML: 还有应用程序。属性包括: 更新: 当我按照@Byeon0gam的建议从我的控制器中删除@RequestParam时,我不再会遇到这个错误,但是我的文件在控制器中是空的。虽然在FE服务中,如我所见,它不是空的:

  • 我试图创建一个页面,用户可以张贴图像及其细节。现在,当我测试来自postman的spring boot服务时,我能够成功地在服务中获取文件。当我试图从angular5中做同样的事情时,多部分文件在服务中没有被识别,并且总是得到空数组。 我的角服务代码如下 } 我已经尝试添加标头,如multipart/form-data,并将其设置为un定义。无论哪种方式,我都收到了错误。在发布到这里之前,我已经广

  • 我正在尝试编写一个SpringMVC方法,它可以接收多部分/表单或传输编码的分块文件上传。我可以编写一个单独的方法来处理每种类型,但我希望使用相同的方法,以便使用相同的REST POST uri,例如: 以下是我迄今为止最好的尝试: 使用上述方法,我可以上传一个多部分文件,但如果我上传一个分块文件,我会从spring得到一个异常,它说: 如果我删除MultipartFile请求参数,它非常适合分块

  • 我正在尝试使用@Controller和@Request estMap使用Spring 3.1.2上传多个文件。 下面是我做的和我的配置。 格式 : 控制器方法: 我的会议: 提交表单确实会转到添加文件系统映像方法。locId 参数的数据位于此处,但“文件”参数未绑定。无论我尝试过什么参数/字段名称/参数类型的组合,它都是系统性的空值。 HttpServletRequest参数是一个org.spri