springmvc上传图片实例

springmvc上传图片

1、需求

在修改商品页面,添加上传商品图片功能


2、springmvc中对多部件类型解析

在页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。

在springmvc.xml中配置multipart类型解析器

	
	
		
		
			5242880
			
	


3、加入上传图片的jar


4、创建图片虚拟目录存储图片

通过修改tomcat的配置:
在Tomcat安装目录下找到conf/server.xml文件,添加虚拟目录:

注意:在图片虚拟目录中,一定将图片目录分级创建(提供i/o性能),一般采取日期(年月日)进行分级创建。


5、上传图片代码

页面:

商品图片

controller类中方法:

		//在需要校验的pojo前面添加@Validated,在需要校验的pojo后边添加BindingResult bindingResult接收校验出错信息
		//注意:@validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)
		//...
		//获取校验错误信息
		if(bindingResult.hasErrors()){
			//输出错误信息
			List allErrors = bindingResult.getAllErrors();
			for(ObjectError objectError:allErrors){
				//输出错误信息
				System.out.println(objectError.getDefaultMessage());
			}
			//将错误信息传到页面
			model.addAttribute("allErrors", allErrors);
			return "items/editItems";
		}
		//原始名称
		String originalFileName = items_pic.getOriginalFilename();
		//上传图片
		if(items_pic!=null && originalFileName!=null && originalFileName.length()>0){
			//物理路径
			String pic_path = "F:\\pic\\2016";
			//新的图片名称
			String newFileName = UUID.randomUUID() + originalFileName.substring(originalFileName.lastIndexOf("."));
			//新图片
			File newFile = new File(pic_path + newFileName);
			//将内存中的数据写入磁盘中
			items_pic.transferTo(newFile);
			//将新的图片名称写到itemsCustom中
			itemsCustom.setPic(newFileName);
		}
		return "success";
	}



你可能感兴趣的:(springmvc)