2012-02-18 3 views
4

생성 :자바 스크립트 얻을 이미지 크기 내가 자바 스크립트에서 이미지 크기를 얻기 위해이 코드를 발견 이미지

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 페이지를 사용합니다.이 페이지에서 권한을 확인하고 이미지를 다시 보내기 때문에 작동합니다. 하지만 자바 스크립트 함수에이 링크를 추가하면 크기를 얻기 위해 작동하지 않습니다. 어떤 도움 (이미지의 직접 링크를 넣으면 .htaccess 파일에서 차단 되었기 때문에 두 가지 모두 작동하지 않습니다)?

이미지가 들어있는 폴더에도 everthing에 대한 액세스가없는 .htaccess 파일이 있습니다.

Image.php :이 htaccess로에 의해 차단 된 경우

//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); 
+0

당신이 그렇지 않으면 JS는 아무 것도 얻을 수없는, 실제 서버에, 당신은뿐만 아니라 –

+0

을 지연 고려해야 브라우저 열린'imgSrc'을 허용해야 " 보호받는 "방법? 암호 대화 상자를 통해? –

+0

아마 필요한 쿠키 또는 세션 변수를 확인합니다. –

답변

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; 
+0

고마워, 나는 이미 내 코드를 변경했다. (문제는 여전히 지속되지만, 이제는 이미지에 도달하기 만하면 크기가 표시된다.) –

+0

코드로이 작업을 수행 할 수있는 방법을 찾았습니다. 값을 반환하는 대신 작동하지 않습니다. 원래 크기를 필요로하는 크기 조정 코드를 직접 onload 함수에 넣었습니다. 이미지가 원본 크기로로드되면 바로 크기가 예외로 조정됩니다. 당신의 대답에 대해 정말 고마워요. –

2

, 당신은 그것에 대해 아무것도 할 수 없습니다 이미지를 얻으려면,이 PHP 페이지를 사용합니다. 즉, 어떤 상황에서도 서버 외부에서 액세스 할 수 없게됩니다.

이미지 크기를 가져 오는 특수한 PHP 파일을 작성한 다음 AJAX에서이 파일을 호출하는 문제를 해결할 수 있습니다. 그러나이를 위해서는 추가 서버 리소스가 필요합니다.

+0

그는 특별한 PHP 파일을 이미 설명했습니다 (질문을 수정하지 않는 한?) –

+0

사실, 그게 효과가 있습니다. 그러나 js 이미지 크기를 얻을 수 있도록 image.php 파일에서 뭔가를 변경하는 것이 쉬울 것이라고 생각했다; 왜 그렇게 할 수 없는지 나는 이해하지 못한다. 게시물에 image.php 코드를 추가하겠습니다. –