javascript无法获得正确的图像宽度和高度

时间:2012-06-21 23:42:19

标签: javascript html

我已使用HTML api将多个图片上传添加到我的网站。我必须在上传时测试每个图像,无论它们是高(高度>宽度)还是长(高度)

<script type="text/JavaScript">
function filesProcess(files) 
{
  var shape=document.getElementById('shapeval').value;
  for( var i = 0; i < files.length; i++) 
    {
        file = files[i];
        if(!file.type.match(/image.*/)) 
            {


            alert('File name '+file.name+' is not allowed! Please try again!');

            window.location.reload(true);

                continue; //Jump forward to the next file...

                }
      else
        { 
                var iw=document.images[i].width;
            var ih=document.images[i].height;
            var n=document.images[i].name;
            if(shape="tall")
                {

                    alert("width:"+iw+" and height:"+ih);
                }
                else
                {

                    alert("width:"+iw+" and height:"+ih);
                }
            continue;
        }

    }


}
 </script>

HTML

  <form action="upload.php/" method="post" enctype="multipart/form-data" name="uploadForm" onsubmit="return(validate());">
  <input type="file" id="files" name="files[]" multiple  onchange="filesProcess(this.files);" accept="image/*"/>
   <input type="hidden" name="shapeval" id="shapeval" value="tall" />
  </form>

显示使用此代码宽度和高度,但它们的值不正确。大多数情况下,这两种图像都显示182和51;所以我无法识别图像是高还是长?我错在哪里?我错过了什么吗?任何人都有任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

据我所知,您无法通过Javascript获取要上传的图像的高度或宽度。您需要将其上载到服务器,然后使用PHP(或任何其他服务器端脚本语言)来获取有关该图像的信息。尝试PHP函数getimagesize(),它应该为您提供所需的信息。

如果您想要内联处理图像并向用户回放信息,我建议您使用AJAX提交表单并使用响应数据。