Spring mvc Spring mvc多部分文件上传

Spring mvc Spring mvc多部分文件上传,spring-mvc,file-upload,multipartform-data,Spring Mvc,File Upload,Multipartform Data,我在stackoverflow上看到了很多关于SpringMVC应用程序中多部分文件上传问题的答案。 我一步一步地确保自己不会重复别人犯过的错误 这是我的表格 <form class="form-horizontal" data-toggle="validator" id="track_existing_repair" method="post"

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

这是我的表格

<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>
  • 我尝试了@RequestParam而不是@RequestPart

  • 不带required=false,我有“required request part” “购买证明”不存在“响应,所以我将其设置为非必需 只有进入调试器才能检查请求

所以当我停在调试器中时,请求对象向我显示该文件已被接收,甚至存储在jBoss临时文件夹中,对此我并不感到惊讶


请您指出,Spring看不到上传的文件,我可能会错过什么?

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

一旦我从web.xml中删除了所有struts servlet和过滤器,一切都开始工作

<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;
}