验证图片尺寸

验证图片尺寸

算是第二版吧
需要jquery支持

/**
 * 验证图片是否符合要求的尺寸
 * 因方法调用执行等问题,无法返回理想值
 * @param obj input对象
 * @param width 设定尺寸
 * @param height 设定尺寸
 * @param imga 获取数据的IMG
 * 
 * 使用方法:在前台页面调用此方法,将参数传入即可
 * 例:validationImg(obj,width,height,imgName);
 * 页面标签:
 *  <input id="head" type="file" name="avatar"
 *   onchange="validationImg(this,300,200,'imga')">
 * 
 *  <img class="preview_size_fake" id="imga"/>
 * 
 * 需注意:页面部分需要添加style代码块:  
 * 该对象只用来在IE下获得图片的原始尺寸,无其它用途 
 * <style type="text/css">
 *  .preview_size_fake{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
 *     sizingMethod=image);
 *     height: 1px;visibility:hidden; overflow: hidden; display: none;}
 * </style>
 * 
 */
function validationImg(obj,width,height,imga){
    var val = obj.value;
    var version = "";
    var objId = obj.id;
    var userAgent = navigator.userAgent;
    //判断浏览器版本,因兼容性问题,IE7,8,9分为一个版本,其余浏览器共用一个版本
    if(userAgent.indexOf('MSIE 9.0')>=0||userAgent.indexOf('MSIE 8.0')>=0||userAgent.indexOf('MSIE 7.0')>=0){//IE7,8,9版本
        version = "ie789";
    }
    //验证图片格式
    if(!val.match( /.jpg|.gif|.png|.bmp/i )){
        imgtype = false;
        return false;
    }
    if (version.indexOf("ie789")>=0) {
        //这是ie7,8,9版本
        $("#"+imga).show();
        //获取文件
        var objPreviewSizeFake = $("#"+imga).get(0);
        var fileupload = obj;
        fileupload.select();
        fileupload.blur();
        path = document.selection.createRange().text;
        if (/"\w\W"/.test(path)) {
            path = path.slice(1,-1);
        }
        objPreviewSizeFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = path; 
        //对上传文件的尺寸进行判断
        if(parseInt(objPreviewSizeFake.offsetWidth) > width || objPreviewSizeFake.offsetHeight > height){
            $("#"+imga).hide();
            //不符合要求规定,清除已选择的图片
            $(obj).after($(obj).clone().val("")); 
            $(obj).remove(); 
            //给用户提示信息
            alert("所选图片不符合要求");
        }else{
            document.selection.empty();
            $("#"+imga).hide();
        }
    }else{
        var reader = new FileReader(),
        file = obj.files[0]; 
        reader.addEventListener("load",function(e){
            var image = new Image();
            image.addEventListener("load",function(){
                msg=(image.width <= width && image.height <= height);
                if(!msg){
                    //不符合要求规定,清除已选择的图片
                    $(obj).after($(obj).clone().val("")); 
                    $(obj).remove(); 
                    //给用户提示信息
                    alert("所选图片不符合要求");
                }
            });
            image.src = e.target.result;
        }); 
        //触发事件
        reader.readAsDataURL(file); 
    };
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值