日期:2014-05-18  浏览次数:20775 次

JS得到图片的尺寸
页面上我定义了标签,用来上传图片
<s:file name="aa" id="aa" ContentEditable="false" size="45"></s:file> 
提交时我要得到上传图片的大小和尺寸,我用下面的JS来做:
function checkImage(file){
var fso,f;  
fso=new ActiveXObject("Scripting.FileSystemObject");  
f=fso.GetFile(file);
var fileSize = f.size ;
if((fileSize/1024) > 2){
alert("上传图片文件不能大于2K");
return false;
}
var imgSize={  
  width:0,  
  height:0  
  };  
  image=new Image();  
  image.src=file;  
  imgSize.width =image .width;  
  imgSize .height=image .height;  
  alert( imgSize.width);
return true;
}

但这样我始终得不到图片的尺寸大小,一直提示0

------解决方案--------------------
Java code

var flag=false; 
function sImage(ImgS){ 
var image=new Image(); 
image.src=ImgS.src; 
if(image.width>0 && image.height>0){ 
flag=true; 
if(image.width/image.height>= 173/173){ 
if(image.width>173){ 
ImgS.width=173; 
ImgS.height=(image.height*173)/image.width; 
}else{ 
ImgS.width=image.width; 
ImgS.height=image.height; 
} 
//ImgS.alt="实际图片大小为"+image.width+"×"+image.height; 
} 
else{ 
if(image.height>173){ 
ImgS.height=173; 
ImgS.width=(image.width*173)/image.height; 
}else{ 
ImgS.width=image.width; 
ImgS.height=image.height; 
} 
//ImgS.alt=image.width+"×"+image.height; 
} 
} 
}

------解决方案--------------------
HTML code

<input type="file" id="fileText">    
<input type="button" value="getSize" onclick="checkFileChange(document.getElementById('fileText'));">   
  
  
<script type="text/javascript">   
var  Sys = {};   
if(navigator.userAgent.indexOf("MSIE")>0)   
{   
    Sys.ie=true;   
}   
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)   
{   
    Sys.firefox=true;   
}   
  
function checkFileChange(obj)   
{   
    var filesize = 0;   
       
    if(Sys.firefox)   
    {   
        filesize = obj.files[0].fileSize;   
    }else if(Sys.ie)   
    {   
        var fileobject = new ActiveXObject ("Scripting.FileSystemObject");
        var file = fileobject.GetFile (document.getElementById("fileText").value);
        var filesize = file.Size;
    }   
    alert(filesize);   
}   
</script>