日期:2014-05-16  浏览次数:20460 次

【我是菜鸟】真不知道是哪里出了错,哪位高手帮忙解决一下!
上传图片的问题

JScript code

function filechang()
        {            
            var oFileChecker = document.all("loadImg"); 
            var file=document.all("file1");
            if(file.value!="")
            {
                str= file.value;
                strs=str.toLowerCase();
                lens=strs.length;
                extname=strs.substring(lens-4,lens);
                oFileChecker.Width=0;
                oFileChecker.Height=0;
                alert("宽度:"+oFileChecker.offsetWidth+"高度:"+oFileChecker.offsetHeight);
                if(oFileChecker.offsetWidth<=176 && oFileChecker.offsetHeight<=178 && extname==".jpg")
                {
                    alert("通过!");
                   return false;
                }
                else
                {
                    alert("请选择176×178大小的JPG格式文件!");
                    return false;  
                }
            }
            else
            {
                alert("请选择要上传的文件!");
                return false;
            }
        }



页面加载后第一次上传图片时,第一次用offsetWidth,offsetHeight检测的是图片控件最原始的尺寸,根本检测不到上传图片的真实大小。这要怎么解决啊?

------解决方案--------------------
JS要取图片的像素尺寸,最好的方法就是用var o=new image(),然后读o.width和o.height,但当图片还没完全载入时,这个o.width和o.height就会为0,所以还要加判断,用o.onload或者用setTimeout去执行判断。这是目前我所知道JS取图片尺寸最准确的方法。