Springmvc图片上传功能
文件上传的本质和servlet上传一样,都是通过commons-fileupload.jar和commons-io.jar实现
springmvc可以简化文件上传的代码,但是必须实现MultipartResolver,而该接口的实现类springmvc
也提供了CommonsMultipartResolver接口
步骤
1.直接使用(CommonsMultipartResolver)接口
2.jar包commons-fileupload.jar、commons-io.jar
3.配置CommonsMultipartResolver,将CommonsMultipartResolver加入ioc容器
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 上面id不能变,在Ioc容器初始化的时候会自动寻找该bean,如果有就进行加载没有就忽略 -->
<!--配置默认编码方式 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 单个文件的大小 -->
<property name="maxUploadSize" value="1024000"></property>
<!-- 上面数字是字节数 上面是1mb,如果是-1表示无限制-->
</bean>
4.在上传处的表单method后面加一句enctype="multipart/form-data"
<input type="file" name="file" />
<input type="submit" value="选择文件上传" />
5.在controller里面写一个@RequestMapping("/******")
public String ******(@RequestParam("和前端对应的name") String name ,@RequestParam("和前端对应的"file")MultipartFile file)
if(!picture.isEmpty()) {
File ff=new File(realPath);//new一个文件对象将路径填入
if(!ff.exists()) {
ff.mkdir();//如果不存在该文件夹创建一个文件夹,存在才将文件存入文件夹
}else {
//文件不为空就保存在/images文件夹下
picture.transferTo(new File(request.getServletContext().getRealPath("/images"),picture.getOriginalFilename()));
//picture.getOriginalFilename();得到的是文件的全名包括后缀
}
}