图片尺寸的验证宽高

// 验证方法
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、付费专栏及课程。

余额充值