扩展validator验证文件上传

      Salesup项目快完了,估计还有几天就能搞定了,在这个月底不要睡觉也要把它拿下,好久没有这种战斗的感觉了。
      整个项目做下来,虽然大的技术上面自己没有太大的突破,小技术还是积累了不少,花点时间总结一下还是蛮有价值的。今天上午在做数据验证的时候,把struts的validator扩展了一下,加上了文件上传的验证功能,效果还不错。代码如下
public class ValidatorUtil {
    public static boolean validateUpload(Object bean,
            ValidatorAction va, Field field,
            ActionMessages errors,
            Validator validator,
            HttpServletRequest request) {
        BeanWrapper form = new BeanWrapperImpl(bean);
        if(form.isReadableProperty(field.getProperty())){
            boolean success=false;
            FormFile formFile = (FormFile)form.getPropertyValue(field.getProperty());
            String[] formats = field.getVarValue("format").split(",");
            long size = Integer.valueOf(field.getVarValue("size"));
            if(formFile.getFileSize()<=size){
                success=true;
            }
            if(success){
                boolean rightFormat=false;
                String fileName = formFile.getFileName();
                String format = fileName.substring(fileName.lastIndexOf(".")+1);
               
                for(int i=0;i<formats.length;i++){
                    if(formats[i].equalsIgnoreCase(format)){
                        rightFormat=true;
                        break;
                    }
                }
                success=rightFormat;
            }
            if(success){
                return true;
            }
        }
        errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
        return false;
    }
}
然后只用在validator.xml里设置格式限制和大小限制就可以了,修改方便,不需要重编译
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值