• ベストアンサー

画像ファイルの出力方法

readfile($_FILES['userfile']['tmp_name']); で出力すると解読不可能な文字列が表示されます。 おそらく画像データを吐き出しているだけだと思います。 やりたい事はその画像をimg src=""で表示させたいだけです。 その方法がわかりません。 画像データから画像への変換というかやり方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

PHPの側で以下のように宣言して header("Content-type: image/jpeg"); 表示する側でHTMLを以下のように記述してみてはいかがでしょう。 <img src="xxx.php"> なおimage/jpegのjpegの部分は画像ファイルの種類にあわせてください。またxxx.phpのxxxはPHPのファイル名です。

wf3255
質問者

お礼

返信が遅れてしまい申し訳ございません。 header("Content-type: image/jpeg");の宣言方法でうまくいきました。 有難うございました。

その他の回答 (2)

回答No.3

基本的に #2さんの方法でOKです。 > おそらく画像データを吐き出しているだけだと思います。 通常の画像だって基本的にはそうですよ。 ブラウザにどんなファイルかを認識させる為に、WEBサーバはヘッダーをつけます。このヘッダーによってブラウザが画像であるか、HTMLであるか、XML文書であるか、はたまたExcelやWordの文書であるかを判断し、それなりの表示やアプリケーションの起動をしています。 header("Content-type: ".$filetype); $filetypeにはimege/jpeg、image/gif、image/png等が入ります。アップロードされたファイルのようですが、この場合は$_FILES['userfile']['type']にファイルタイプが入っているのでそれをそのまま入れると言う方法もあります(空の場合も有るので対策をとった方が良い)。 補足ですが、通常はこの方法で画像として認識されますが、ヘッダーをつけてもレンタルサーバ等で自動的にバナーが表示されるような環境では駄目な場合があります。このような環境ではphpならばtext/htmlとして出力されてしまいます。apacheのmod_layoutという機能を使っていますので、.htaccess等でスクリプトを指定して無効にする必要があります。

wf3255
質問者

お礼

返信が遅れてしまい申し訳ございません。 詳しいご説明有難うございました。 うまくいきました。 有難うございました。

noname#39970
noname#39970
回答No.1
wf3255
質問者

補足

すみません。 わかりません。 ヘッダーはわかるのですが、エンコードのようには変えられないのでしょうか?

関連するQ&A

専門家に質問してみよう