在前端用js实现获取图片大小,百度里有很多类似的,但是大多都不能用,主要有一点问题是出在Filesize上,事实上使用
files[0].size才能实现这个效果。关键在于
var imgSize=obj.files[0].size;这句代码。
话不多说直接po代码了
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE" value="8000" />
<input type="file" name="files" id="files" onchange="checkFileType(this)"/>
<script type="text/javascript">
var maxSize=document.getElementByIdx_x('MAX_FILE_SIZE').value;
function checkFileType(obj){
var path=obj.value.toString();
var perfix=path.substring(path.indexOf('.')+1);
var regExp=/(jpg|jpeg|gif|png)/gi;
if(perfix.match(regExp)){
checkFileSize(obj); //如果图片文件类型匹配成功则执行文件大小的检测。
}else{
alert('对不起,请选择图片文件'); return false;
} }
function checkFileSize(obj){
var img=new Image();
try{
var imgSize=obj.files[0].size;
return isLarged(imgSize,maxSize);//图片文件大小比对。
}catch(e){ try{
img.src=obj.value;
return isLarged(img.fileSize,maxSize);
}catch(e){
obj.select();
var path=document.selection.createRange.text();
img.src=path;
return isLarged(img.fileSize,maxSize);
} } }
function isLarged(imgSize,maxSize){
if(imgSize>maxSize){
alert('对不起,您选择的图片文件超过了'+parseInt(maxSize/1024)+'Kb');
return false;
}else{
alert(parseInt(imgSize/1024)+ 'kb ' + 'This large is OK');
return true;} } </script>
评论