使用spring的文件上传时,需要完成以下步骤
1.在spring-servlet.xml中配置文件上传支持,如下
<!-- spring文件上传配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760000"/>
<property name="maxInMemorySize" value="40960"/>
<property name="defaultEncoding" value="utf-8"/>
</bean>
注意:spring的文件上传是的bean的id是固定的,原因是在Spring MVC的核心类DispatcherServlet中, 把这些bean的id固定了. 你必须保证bean的id相同, 才能正常工作.
2.后台使用CommonsMultipartFile接收File
前端代码如下:
<input type="file" name="file">
后台接收用
public String upload(@RequestParam("file") CommonsMultipartFile commonFile){
如果写代码的过程中遇到如下错误,需要考虑两点
1.html/jsp页面的控件名称 和 controller里函数的参数不符
2.配置文件有问题,这里有问题multipartResolver必须是固定的
<!-- spring文件上传配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760000"/>
<property name="maxInMemorySize" value="40960"/>
<property name="defaultEncoding" value="utf-8"/>
</bean>