1

我使用 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;所以我无法识别图像是高还是长?我哪里做错了?我错过了什么吗?有人知道吗?

谢谢!

4

1 回答 1

2

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

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

于 2012-06-21T23:51:18.607 回答