js获取上传图片大小,判断上传图片类型,获取图片真实宽度和高度

时间:2022-03-18 19:21:14

html部分

<div class="form-group  col-md-12">
<label class="col-md-2 text-right" for="name">預覽圖片</label>
<div class=" col-md-8">
<input type="file" name="img" accept="image/*" id="image-id">
</div>
</div>
<div class="form-group col-md-12">
<label class="col-md-2 text-right" for="name">福利圖片</label>
<div class=" col-md-8">
<input type="file" name="imgs" accept="image/*" id="images-id">
</div>
</div>

js部分

//判斷上傳圖片格式
var imgtype = testImgType("image-id");
if(!imgtype) { toastr.warning('預覽圖片格式不正確'); return false; }
var imgstype = testImgType("images-id");
if(!imgstype) { toastr.warning('福利圖片格式不正確'); return false; } //判斷上傳圖片大小
var imgfile=document.getElementById("image-id");
var imgbool = testMaxSize(imgfile,1048576)?testMaxSize(imgfile,1048576):'';
if(!imgbool){
toastr.warning('預覽圖片過大,請上傳小於1M的圖片');
return false;
};
var imgsfile=document.getElementById("images-id");
var imgsbool = testMaxSize(imgsfile,1048576)?testMaxSize(imgsfile,1048576):'';
if(!imgsbool){
toastr.warning('福利圖片過大,請上傳小於1M的圖片');
return false;
};

函數部分

function testImgWidthHeight(img, w,h,callback){
var input = document.getElementsByName('img');
if(input.files){
//读取图片数据
var f = input.files[0];
var reader = new FileReader();
reader.onload = function (e) {
var data = e.target.result;
//加载图片获取图片真实宽度和高度
var image = new Image();
image.onload=function(){
var width = image.width;
var height = image.height;
if (width != w || height != h) {
//隐藏
input.value="";
callback && callback(false);
} else {
callback && callback(true);
}
};
image.src= data;
};
reader.readAsDataURL(f); }else{
var image = new Image();
image.onload =function(){
var width = image.width;
var height = image.height;
var fileSize = image.fileSize;
alert(width+'===2==='+height+"====="+fileSize);
}
image.src = input.value;
}
}
/**
*文件大小
* @param fileData
* @param Max_Size 限制圖片大小
* @returns {boolean}
*/
function testMaxSize(fileData,Max_Size){
var isAllow=false;
var size = fileData.files[0].size;
isAllow = size <= Max_Size;
if(!isAllow){
return false;
}
return isAllow;
}
/**
* 判断图片类型
* @param eventId 圖片id
* @param gif|jpg|jpeg|png|GIF|JPG|PNG
* @returns {boolean}
*/
function testImgType(eventId) {
var tmpFile = document.getElementById(eventId);
if (!/\.(jpg|jpeg|png|JPG|PNG)$/.test(tmpFile.value)) {
tmpFile.value= "";//清空上傳圖片
return false;
}
return true;
}