博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扩展validator验证文件上传
阅读量:2442 次
发布时间:2019-05-10

本文共 1169 字,大约阅读时间需要 3 分钟。

      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里设置格式限制和大小限制就可以了,修改方便,不需要重编译

转载地址:http://ftvqb.baihongyu.com/

你可能感兴趣的文章
tls 1.2加密_椭圆曲线加密在TLS 1.3中的工作方式
查看>>
pvs-stdio ue4_使用PVS-Studio检查GCC 10编译器
查看>>
inter-rat_数字取证技巧和窍门:基于IM的电报RAT-第二部分
查看>>
物联网细分行业_2020年全国互联网细分市场可靠性研究
查看>>
加拿大加密货币交易_加密货币交易-如何制定可持续战略
查看>>
pvs-stdio ue4_使用PVS-Studio检查电报开放网络
查看>>
感觉程序员工作环境沉闷_PHP的未来:光明还是沉闷?
查看>>
寻找新
查看>>
蛇爬树问题_如何爬树
查看>>
机器学习的Web服务器'VKF-solver'
查看>>
PostgreSQL中的WAL:3。检查点
查看>>
PostgreSQL中的WAL:2.预写日志
查看>>
zephyr操作系统_检查Zephyr操作系统代码
查看>>
ITMO大学的杂耍工作和学习:CS版
查看>>
pvs linux_使用Linux的PVS-Studio C#进行单行代码或Nethermind的检查
查看>>
矢量网络分析仪测量功分器_如何在遗留项目中引入静态代码分析器而又不劝阻团队...
查看>>
Node.js VS Python:哪个更好?
查看>>
微信玩这个 存款惊人_英语的8个惊人新趋势
查看>>
xamarin.forms_Xamarin.Forms 4.4助您一臂之力
查看>>
PostgreSQL中的锁:2.行级锁
查看>>