DBに格納されたバイナリデータを画像表示する方法
PHP初心者ですみません。PHP、PSQLでDBにアップロードされた画像データ(バイナリデータ)をWEB上で例<img src=image.php>画像表示したいのですが、画像が×表示になってしまいます。格納時にデータが間違っているのか?それとも表示方法が間違っているのかわかりません。どなたか助けてください。
【アップファイル格納時スクリプト】
//fopenして変数に保存
$fp = fopen($_FILES["upfile"]["tmp_name"],"r");
$imagedata = fread($fp,filesize($_FILES["upfile"]["tmp_name"]));
fclose($fp);
//バイナリデータをエスケープ
$imagedata = pg_escape_bytea($imagedata);
$filename = $_FILES["upfile"]["name"];
$sql_g = "update img set img_data='$imagedata'";
$conn_g = connect();
$result_g = pg_query($conn_g,$sql_g);
pg_close($conn_g);
}
【画像表示用ファイルスクリプト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=' . $img_data);
print"${img_data}";
【画像表示部分スクリプト】
<img src="http://●●●●/●●/image.php" alt="イメージ" width="500" height="100">
こんな感じなのですが、どこがどう違うのか何度も試してやっとここまできたのですが、答えがでません。お解りの方いらっしゃいましたらご指摘をどうかよろしくお願いいたします。
補足
本当に何度もごめんなさい。 この「適当なファイル名で書き出す」方法がどうしてもわからないのです。 エクセルへのペーストの話は外して、単に「DB内に格納されたJPGの画像データをファイルに書き出す方法」がわかれば後はなんとかなりそうなんですが…申し訳ないです。 SI OBJECT BLOWSERでDB内の格納データを見たところ、 00 03 A0 B0 90 00 00 00 00 00 23 44 90 00 00 00 ・・・・・・のような感じで格納されているようです。 JPGのデータですよねこれ。 これをSQL*PLUSでSELECT文組んで抽出しようとすると F とこれだけしか表示されません(;; ちなみにSELECT文は select (カラム) from (テーブル) where (条件); ってこれだけなんですが、なんか形式指定とかする必要があるのでしょうか…。