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

时间:2012-02-18 11:27:43

标签: 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);
}

它完美无缺,但我需要获得受保护图像的大小;为了访问图像,我使用页面image.php?id = IMAGE_ID,它工作,因为在这个页面我检查权限并发回图像。但是当我把这个链接放在javascript函数上时,为了获得它的大小,它不起作用。任何帮助(如果我把图像的直接链接既不起作用,因为它在.htaccess文件中被阻止)?

包含图像的文件夹还包含一个.htaccess文件,该文件拒绝访问以进行翻转。为了获得图像,我使用这个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);

2 个答案:

答案 0 :(得分:2)

如果它被.htaccess阻止,你就无法做任何事情。这意味着在任何情况下都无法从服务器外部访问它。

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

答案 1 :(得分:2)

正确的方法是:

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;