图片尺寸的验证宽高

// 验证方法
	private void validate(Banner banner, BindingResult result, int method,MultipartFile image) throws IOException {
		// method:如果在新增的时候调用 写1,如果在修改时调用写2
		// 新增、修改时验证方法条件不同
		BannerCond cond = new BannerCond();
		cond.setName_c(banner.getName());
		if (method == 2) {// 修改时多拼上一个查询条件
			cond.setId_c(banner.getId());
		}
		int count = service.queryCount(cond);
		if (count > 0) {// 这个名称已经存在(验证未通过)
			result.rejectValue("name", "", "【轮播图名称】不能重复!");
		}
		///图片尺寸的验证宽高 大小
		if(!image.isEmpty()){
			BufferedImage bi = ImageIO.read(image.getInputStream());// 定义一个图片缓存变量
			String validate = util.findDictValue(12, banner.getType());// 去字典里按不同终端去取不同的验证标准
			String vali[] = validate.split(",");
			if (bi.getWidth() != new Integer(vali[0])) {
				result.rejectValue("name", "", "图片宽度必须是" + vali[0] + "px!");
			}
			if (bi.getHeight() != new Integer(vali[1])) {
				result.rejectValue("name", "", "图片高度必须是" + vali[1] + "px!");
			}
			if (image.getSize() / 1024f > new Integer(vali[2])) {
				result.rejectValue("name", "", "图片大小不超过" + vali[2] + "K!");
			}
		}
	}

	/**
	 * @throws IOException 
	 * @功能说明:修改记录
	 */
	@RequestMapping("update")
	public String update(Map<String, Object> map, @ModelAttribute("banner") Banner banner, BindingResult result,
			MultipartFile image) throws IOException {
		validate(banner, result, 2,image);// 调用验证方法
		if (result.hasErrors()) {// 如果存在验证不通过的情况
			map.put("typeMap", util.getDictMap(10, false));// 准备终端类型map
			return "cms/banner/update";
		}
		service.update(banner, image);
		return "redirect:list";
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值