- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBに格納されたバイナリデータを画像表示する方法)
DBに格納されたバイナリデータを画像表示する方法
このQ&Aのポイント
- PHP初心者のため、PHP、PSQLを使用してDBにアップロードされた画像データ(バイナリデータ)をWEB上で表示したいです。
- 画像表示用のファイルスクリプトと画像表示部分のスクリプトが正しく動作していないため、画像が表示されません。
- どなたか詳しい方に助けていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#22650
回答No.1
$img_dataの内容がおかしいのでしょうか? $img_dataの内容が正しいなら、PHPの問題なので、PHPのカテゴリで質問した方が回答あると思います。 >header('Content-Disposition: inline; filename=' . $img_data); PHPは分らないので、参考意見ですが、ファイル名に生データ入れてる様に見えますが、ここは問題ないですか? >print"${img_data}"; エスケープしたデータを、そのまま出力しているように見えます。アンエスケープして、バイナリ出力するべきでは? 中途半端な回答でごめんなさい。
お礼
早速の回答誠にありがとうございます。 いろいろ試してみた結果、解決できました! 下記の↓の一行を追加しました。 【画像表示用ファイルスクリプトimage.php】 $sql_i = "select img_data from img"; $conn_i = connect(); $res_i = pg_query($conn_i,$sql_i); $num_i = pg_num_rows($res_i); $img_data = pg_fetch_result($res_i,0,"img_data"); header('Content-type: image/gif'); header('Content-Disposition: inline; filename=' . test.gif); //↓ここを追加してみました↓ $img_data=pg_unescape_bytea($img_data); print"${img_data}";