1.springmvc文件上传功能,使用的是apache提供的文件上传组件
commons-fileupload-xxx.jar
commons-io-xxx.jar
2.在springmvc的配置文件中,添加文件上传解析器
<!-- 文件上传解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:maxUploadSize="34564356345456"
p:defaultEncoding="utf-8">
<!-- <property name="defaultEncoding" value="utf-8"></property> -->
</bean>
3.在jsp页面中做如下设置
form标记的enctype属性值必须为:multipart/form-data
form标记的method属性值必须为:post
文件上传使用的html标记为:<input type="file" name="xxx" />
4.在springmvc的控制器方法中,添加MultipartFile参数
@RequestMapping(value={"/add", "/insert"}, method={RequestMethod.POST})
public String add(String goodsName, MultipartFile photo, HttpServletRequest request){
//判断是否上传了文件
if(photo.isEmpty()==false){
try{
//保存的路径 c:Program Filesapache tomcat 7.0webappsspringmvc_2016110102files
//获取files文件夹的绝对路径
String path = request.getServletContext().getRealPath("files");
String filePath = path +"/"+photo.getOriginalFilename();
//存储文件
photo.transferTo(new File(filePath));
}catch(Exception ex){
ex.printStackTrace();
}
}
return "goods/list";
}
注意:为了避免上传的文件,因为文件名相同造成被覆盖的问题,可以将存储的新文件名称按uuid来命名。
对于多文件上传的情况,只需要在控制器方法中添加MultipartFile[]数组参数即可。