2010-11-23 8 views
1

に失敗:PHP:getimagesize()私は、この機能を使用していLAMPサーバー

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(function.getimagesize):ストリームを開くことに失敗しました:HTTPリクエストが失敗しました! HTTP/1.1 401 /var/www/projectname.co.uk/dev/admin/includes/functions_admin.php 59行目の承認が必要です 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の一部としてユーザー名とパスワードを渡すか、別の方法で入手してください。

関連する問題