Upload image js judge image size and format compatible with IE

  • 2020-03-30 03:47:40
  • OfStack

Js code:


$(".head").change(function() {
var val = $(this).val();
if(!val.match( /.jpg|.gif|.png|.bmp/i ) ){ 
imgtype = false;
alert(' Invalid image format! '); 

}else{
if (FileReader) {
var reader = new FileReader(),
file = this.files[0];
reader.onload = function(e) {
var image = new Image();
image.src = e.target.result;
image.onload=function(){
if(image.width > 128 || image.height > 128){
fill = false;
alert(" Head size should be in 128x128 between ");
} 

}


};
reader.readAsDataURL(file);
}else{
//This is ie9 version
$(".preview_size_fake").show();
var objPreviewSizeFake = $(".preview_size_fake").get(0);
var fileupload = $(this).get(0);
fileupload.select();
fileupload.blur();
path = document.selection.createRange().text;

if (/"wW"/.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(" Head size should be in 128x128 between ");
}
document.selection.empty();
}
}
});

CSS code (this must be written, if not, ie will not work)


.preview_size_fake{  
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image); 
height: 1px;
visibility:hidden; 
overflow: hidden; 
display: none;
}

HTML code:


<input class="head" type="file" name="avatar">
<img class="preview_size_fake" />

Related articles: