Spring mvc Spring mvc多部分文件上传
我在stackoverflow上看到了很多关于SpringMVC应用程序中多部分文件上传问题的答案。 我一步一步地确保自己不会重复别人犯过的错误 这是我的表格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"
<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” “购买证明”不存在“响应,所以我将其设置为非必需 只有进入调试器才能检查请求
请您指出,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;
}