javascript没有获得正确的图像宽度和高度
我已经添加了多个图像上传到我的网站使用HTML api的。我必须在上传时测试每个图像,无论它们是高(高度>宽度)还是长(高度)javascript没有获得正确的图像宽度和高度,javascript,html,Javascript,Html,我已经添加了多个图像上传到我的网站使用HTML api的。我必须在上传时测试每个图像,无论它们是高(高度>宽度)还是长(高度) 函数文件处理(文件) { var shape=document.getElementById('shapeval').value; 对于(var i=0;i
函数文件处理(文件)
{
var shape=document.getElementById('shapeval').value;
对于(var i=0;i
HTML
使用此代码显示宽度和高度,但它们的值不正确。大多数情况下,这两种类型的图像都显示182和51;因此我无法识别图像是高还是长?我哪里出错了?我是否遗漏了什么?有人知道吗
谢谢!据我所知,您无法通过Javascript获取要上载的图像的高度或宽度。您需要将其上载到服务器,然后使用PHP(或任何其他服务器端脚本语言)获取有关图像的信息。请尝试PHP函数
getimagesize()
,它应该会为您提供所需的信息
如果您希望以内联方式处理图像并将信息反馈给用户,我建议您使用AJAX提交表单并使用响应数据。无论天气与否,“形状”都是“高”的。在if/else语句中,您实际上想做什么?toll或long的值实际上来自数据库。我刚刚编辑了它。您为什么试图通过
文档访问图像。图像?图像位于传递给函数的文件对象中,而不是文档中。如果执行控制台.log()
在您的文件对象上,您会注意到维度不存在-出于安全原因,我不相信javascript可以访问此信息。我实际上正在将所有图像上载到服务器。但我需要确保图像是长还是高。高还是长字段来自数据库。如果数据库值是高,我不需要上传长图片。这就是为什么我需要检查宽度和高度!
<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>
<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>