Javascript получить размер изображения из сгенерированного PHP изображения - PullRequest
4 голосов
/ 18 февраля 2012

Я нашел этот код для получения размера изображения в 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 ]

2 голосов
/ 18 февраля 2012

Правильный способ сделать это:

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;
2 голосов
/ 18 февраля 2012

Если он заблокирован .htaccess, вы ничего не можете с этим поделать.Это означает, что он не будет доступен извне сервера ни при каких обстоятельствах.

Вы можете решить проблему, написав специальный php-файл, который получает размер изображения, а затем вызываете этот файл с помощью AJAX.Однако для этого требуются дополнительные ресурсы сервера.

...