上传图片js判断图片尺寸和格式兼容IE
js代码:
$(".head").change(function(){ varval=$(this).val(); if(!val.match(/.jpg|.gif|.png|.bmp/i)){ imgtype=false; alert('图片格式无效!'); }else{ if(FileReader){ varreader=newFileReader(), file=this.files[0]; reader.onload=function(e){ varimage=newImage(); image.src=e.target.result; image.onload=function(){ if(image.width>128||image.height>128){ fill=false; alert("头像尺寸应在128x128之间"); } } }; reader.readAsDataURL(file); }else{ //这是ie9版本 $(".preview_size_fake").show(); varobjPreviewSizeFake=$(".preview_size_fake").get(0); varfileupload=$(this).get(0); 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(objPreviewSizeFake.offsetWidth>128||objPreviewSizeFake.offsetHeight>128){ fill=false; alert("头像尺寸应在128x128之间"); } document.selection.empty(); } } });
css代码(这个是必须写的,如果不写,ie下不起作用)
.preview_size_fake{/*该对象只用来在IE下获得图片的原始尺寸,无其它用途*/ filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image); height:1px; visibility:hidden; overflow:hidden; display:none; }
html代码:
<inputclass="head"type="file"name="avatar"> <imgclass="preview_size_fake"/>