-1

ユーザーが自分のマシンを参照して jpeg、gif、または png をアップロードできるようにするコードがあります。

私のコードは xampp localhost から正常に動作します。

LAMP をインストールした Ubuntu 12.04 サーバーがあるアマゾン ウェブ サービスにコードをアップロードしました。そこにコードが機能しません。

コードが失敗したと思われる場所を追跡しました。これでgetimagesize($old_image_path)空のセットが返されます。

$old_image_path = /var/www/ch23_ex1/images//leaf.gifデスクトップから写真を選択すると、このパスが表示される理由はわかりませんが、xampp では機能しました。

これらからの出力をテストするために含まれているエコーステートメントは次のとおりです。

allow_url_fopen = 1

/var/www/ch23_ex1/images//NChandler03.jpgbool(false) 画像タイプ = ファイルは JPEG、GIF、または PNG 画像でなければなりません。

失敗したと思われるコードのセクションは次のとおりです。

function resize_image($old_image_path, $new_image_path,
        $max_width, $max_height) {
    echo "allow_url_fopen = " . ini_get("allow_url_fopen")."<br>"; 
    // Get image type
    echo $old_image_path;
    //$image_info = file_get_contents($old_image_path);
    $image_info = getimagesize($old_image_path);
    $image_type = $image_info[2];
    var_dump($image_info);
    echo 'Image type = '.$image_type;
    // Set up the function names
    switch($image_type) {
        case 2:
          $image_from_file = 'imagecreatefromjpeg';
          $image_to_file = 'imagejpeg';
        break;
        case 1:
          $image_from_file = 'imagecreatefromgif';
          $image_to_file = 'imagegif';
        break;
        case 3:
          $image_from_file = 'imagecreatefrompng';
          $image_to_file = 'imagepng';
        break;
        default:
        echo $image_type;
        echo 'File must be a JPEG, GIF, or PNG image.';
        exit;
     }
}
4

1 に答える 1

0

同様の質問に回答が投稿されているのを見つけました。サーバーに次のコードを入力して、画像ファイルのアクセス許可を変更するだけで済みました。この最初のコマンドは、ディレクトリを画像ファイルを保持するファイルに変更します。2 番目のコマンドは、イメージ ファイルのアクセス許可を変更して、コードが書き込めるようにします。これが他の誰かに役立つことを願っています。

 cd /var/www/ch23_ex1/
 sudo chmod 775 images
于 2013-11-30T20:16:18.323 に答える