我已使用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;所以我无法识别图像是高还是长?我错在哪里?我错过了什么吗?任何人都有任何想法?
谢谢!
答案 0 :(得分:2)
据我所知,您无法通过Javascript获取要上传的图像的高度或宽度。您需要将其上载到服务器,然后使用PHP(或任何其他服务器端脚本语言)来获取有关该图像的信息。尝试PHP函数getimagesize()
,它应该为您提供所需的信息。
如果您想要内联处理图像并向用户回放信息,我建议您使用AJAX提交表单并使用响应数据。