文件上传
SpringMVC可以采用commons-fileupload实现文件的上传
(1)添加依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
(2)页面部分
<form action="upload.do" method="post" enctype="multipart/form-data">
<input type="file" name="pic"/>
<input type="submit" value="上传数据"/>
</form>
- 注意请求方式必须为post,因为get请求限制了所提交内容的大小在2kb以内
- form表单必须设置enctype=“multipart/form-data”
(3)控制器层
- 在方法的参数中添加一个MultipartFile参数,将上传的对象绑定到此参数上,在这里利用了两个方法:
getOriginalFilename()//获得上传文件的原名;
transferTo(dest);把图片写入磁盘中
@RequestMapping(value="upload",method=RequestMethod.POST)
public String upload(MultipartFile pic,HttpSession session,Model model) throws IllegalStateException, IOException {
//获得文件所在路径
String realPath = session.getServletContext().getRealPath("upload/");
File dd = new File(realPath);
if (!dd.exists()) {
dd.mkdirs();
}
File dest = new File(realPath,pic.getOriginalFilename());
pic.transferTo(dest);
return "info";
}
(4)在子容器中配置对应的multipartResovler
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />