2012-03-16 27 views
1

イメージを返すためのPHPスクリプトを作成しましたが、ブラウザは返されたイメージを表示できません。皆さん、何が間違っているのか教えてください。ブラウザで表示するイメージを返す

<?php 
    $file='demo.gif'; 
    if(file_exists($file)){ 
     header('Content-Type:image/jpeg'); 
     header('Content-Transfer-Encoding: base64'); 
     $data=base64_encode(get_file_contents($file)); 
     header('Content-Length: ' . strlen($data)); 
     echo $data; 
    } 
    else 
     echo 'No such file'; 
?> 
+0

なぜbase64_encodeを使用していますか?画像のサイズを拡大しているだけです。 –

+0

jpegのgifと設定ヘッダーをロードしています。 – vascowhite

+0

@Truth:私たちのクライアントの要求仕様はそれを必要とします。 :) とにかくありがとうございました! – anhldbk

答えて

2

まあ、.gifファイルがJPEGであることをブラウザに伝えています。

あなたはまた、file_get_contentsとタイプします。

2

非常に良い理由がない限り、画像データをbase64でエンコードしないでください。代わりに生データを出力します。

get_file_contentsは、おそらくfile_get_contents()である必要があります。 header()コマンドを削除し、error reportingを有効にしてエラーを確認してください。

+0

ありがとう!私はそれを修正しました。 :) – anhldbk

2

私はあなたの提案でそれを修正しました。皆さんありがとう! :) 変更されたコードはここにあります。

<?php 
header('Content-Type: image/gif'); 
$image= file_get_contents('http://localhost/no_img.gif'); 
echo $image;?> 
関連する問題