验证图片尺寸
算是第二版吧
需要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);
};
};