Javascript从php生成的图像中获取图像大小

Javascript从php生成的图像中获取图像大小,php,javascript,html,getimagesize,Php,Javascript,Html,Getimagesize,我发现以下代码用于获取javascript上的图像大小: function getImgSize(imgSrc) { var newImg = new Image(); newImg.src = imgSrc; var height = newImg.height; var width = newImg.width; alert ('The image size is '+width+'*'+height); } 它工作得很完美,但我需要得到一个受保护的

我发现以下代码用于获取javascript上的图像大小:

function getImgSize(imgSrc)
{
    var newImg = new Image();
    newImg.src = imgSrc;
    var height = newImg.height;
    var width = newImg.width;
    alert ('The image size is '+width+'*'+height);
}
它工作得很完美,但我需要得到一个受保护的图像的大小;为了访问图像,我使用了image.php?id=image\u id页面,它可以工作,因为在这个页面中,我检查了权限并将图像发送回。但是当我把这个链接放在javascript函数上,为了得到它的大小,它不起作用。有什么帮助吗(如果我把图像的直接链接放进去,它也不起作用,因为它被阻止在.htaccess文件中)

包含图像的文件夹还包含一个.htaccess文件,denny可以访问该文件。为了获得图像,我使用以下PHP页面:

Image.php:

//check if the user has permission
//if not, show a image with the text 'no permission'
//if it's ok
$filename = "images\\fotos\\" . $imgl;
$image = imagecreatefromjpeg($filename);
header('Content-type: image/jpeg');
imagejpeg($image, null, 100);
imagedestroy($image);

如果它被.htaccess阻止,您将无法对此执行任何操作。这意味着在任何情况下都无法从服务器外部访问它


您可以解决这样一个问题:编写特殊的php文件来获取图像大小,然后通过AJAX调用该文件。但是,这需要传统的服务器资源。

正确的方法是:

var newImg = new Image();

newImg.onload = function ()
{
    var height = newImg.height;
    var width = newImg.width;
    alert ('The image size is '+width+'*'+height);
};

newImg.src = imgSrc;

你必须允许浏览器打开<代码> IMGSRC,否则JS不能得到任何东西,而且,在实际服务器中,你必须考虑延迟以及“保护”如何?通过密码对话框?它可能会检查所需的cookie或会话变量。他已经有了一个特殊的PHP文件,如前所述(除非他编辑了问题?),事实上,这是可行的。但是,我认为更容易在image.php文件中更改某些内容,以便让js获得图像大小;我不明白为什么不能。我将在帖子中添加image.php代码。谢谢,我已经在代码中做了更改(问题仍然存在,但现在只有在成功到达图像时才会显示大小)。我找到了一种使用代码的方法。我没有返回无效的值,而是将resize代码(我需要原始大小的原因)直接放入onload函数中。一旦图像加载了原始大小,它就会调整为例外大小。非常感谢你的回答。