springmvc让我们的文件上传变得异常的简单。
首先我们需要配置spring
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5242880"></property>
</bean>
注意上面的bean的id必须为multipartResolver,maxUploadSize属性为设置文件上传的大小限制,单位为字节,我们设置的大小限制为5mb。
现在我们需要写前端的代码
<form action="/store/root/file" method="post" enctype="multipart/form-data">
商品图片(w):<input type="file" name="picFile"/><br>
<input type="submit" value="提交"/>
</form>
上面的name属性为我们在后台接受时MultipartFile的变量名。form中的enctype=“multipart/form-data”必须配置。
下面是我们的controller中的代码。可以看到接受的MultipartFile的变量名和input的name的属性的值一样。
@RequestMapping("/file")
public void upfile(MultipartFile picFile) throws IllegalStateException, IOException{
if(picFile!=null && picFile.getSize()>0){
String oldName = picFile.getOriginalFilename();
File file = new File("C:/apache-tomcat-7.0.78-windows-x64/apache-tomcat-7.0.78/webapps/store/images/"+oldName);
picFile.transferTo(file);
}
}
picFile.getOriginalFilename()得到的是上传的文件名称。下面这两句就是把上传的文件写入到指定的位置。
File file = new File("C:/apache-tomcat-7.0.78-windows-x64/apache-tomcat-7.0.78/webapps/store/images/"+oldName);
picFile.transferTo(file);
这样我们就完成了一个简单的文件上传的例子。