2010-11-23 5 views
1

나는이 기능을 사용하고 있습니다 LAMP 서버에 실패 :PHP : getimagesize()

function image_resizer($max_width,$max_height,$img_path) { 
    list($width, $height) = getimagesize($img_path); 
    if (($width > $max_width) or ($height > $max_height)) { 
     $ratioh = $max_height/$height; 
     $ratiow = $max_width/$width; 
     $ratio = min($ratioh, $ratiow); 

     $width = intval($ratio*$width); 
     $height = intval($ratio*$height); 
    } 
    return 'width="' . $width . '" height="' . $height . '"'; 
} 

...이 코드를 호출합니다 (정의는 그림 여기를 붙여 다른 파일에있는) :

define("SITE_URI", "http://dev.projectname.co.uk/"); 
define("PRODUCT_IMAGES_URI", "images/collection/"); 
<?php echo image_resizer(280, 375, SITE_URI . PRODUCT_IMAGES_URI . $display_image); ?> alt="<?php echo $display_image; ?> 

... 여기서 $ display_image는 DB에서 온 것입니다 (성공적으로). 그리고 다음과 같은 오류가 발생했습니다 :

경고 : getimagesize (http://dev.projectname.co.uk/images/collection/filename.jpg) [function.getimagesize] : 스트림 열기 실패 : HTTP 요청 실패! /var/www/projectname.co.uk/dev/admin/includes/functions_admin.php 59 행의 HTTP/1.1 401 인증에 필요함 width = ""height = ""alt = "filename.jpg"/>

저는 처음에 서버의 www 데이터 사용자에게 권한을 부여한 폴더에서 이미지의 크기를 가져 오려고 getimagesize()를 사용하고 있습니다. 그런 다음 오류가 다시 발생하면 이미지 폴더에 chmod 777이 생깁니다. 나는 지금 잃어 버렸다.

+0

웹 사이트에 로그인하지 않고도 브라우저의 http://dev.projectname.co.uk/images/collection/whatever.image.ext로 이동할 수 있습니까? 표준 HTTP 인증 문제 인 것처럼 들립니다. – superfro

답변

4

대답은 간단했다. 서버의 폴더에 액세스하기 위해 URL을 사용하려고했지만 대신 서버의 폴더에 대한 절대 경로가 필요했습니다. 이것은 로컬 컴퓨터에서 작동하고 개발 서버에 균열을 미끄러졌습니다.

1

문제가 getimagesize()이 아니므로 암호로 보호 된 URL에서 검색하려고합니다. URL의 일부로 사용자 이름과 암호를 전달하거나 다른 방법으로 얻으십시오.

관련 문제