質問
PostgreSQLのラージオブジェクトを使って画像を表示したい
- 投稿日時:2002/01/08 22:12
現在、PostgreSQL+PHPで画像管理DBを作成しています。
開発環境は、
Solaris8
Apache1.3.12
PostgreSQL7.1.3
PHP-4.1.0
で行っています。
今、PostgreSQLのラージオブジェクトを使用して画像(JPEG)のDBへの登録及び画面に表示するところを作っているのですが、PHPのスクリプトを作成してWeb上から動作確認を行ったところ、画面に以下の文字が表示されました。
=====表示される文字列=====
・・JFIF,,・厥hotoshop 3.08BIM,,
・'File written by Adobe
屯胖7GWgwt6Х牌范
:
=========================
多分、画像(JPEG)のバイナリがそのまま出力されていると思われます。
これは、PHPの問題なのでしょうかそれとも、DBへの登録が失敗したのでしょうか?
教えていただけないでしょうか?また、
PHP4.1.0+PostgreSQL7.1.3の環境で画像管理DBのなにかサンプルがあれば教えてください。
回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:2002/01/09 03:32
別にPHPの問題でもありませんし、DBへの登録が失敗しているわけでもないと思います。
HTTPでは拡張子でファイル種別をしているわけではなくサーバから帰ってくるContent-typeを見て、ファイルを識別します。なので拡張子がhtmlのjpgファイルでも拡張子がjpgのhtmlファイルでも自在ゆっくり、表示させる事が出来ます。
ytak0104の場合、多分普通にlarge objectを取得してprintしただけなのでしょう。その場合、phpがデフォルトのmime-typeであるtext/htmlをかえしてしまいます。
そのためブラウザは続くデータをhtmlとして処理しようとしてバイナリデータが表示されてしまう、というわけです。
どうすれば良いのか?というとブラウザに続くデータはJpegデータである、という事を示してやれば良いのです。
つまり表示するphpファイルの頭の方でheader関数を使って
header("Content-type: image/jpeg");
としてやればブラウザは続くデータを画像として処理してくれるでしょう。
- 質問者のみ
- ベストアンサーを選ばずに質問を締め切る
このQ&Aを見た人はこんなQ&Aも見ています
【電話・メール相談特集】
様々なジャンルの専門家に電話やメールで直接相談できるサービスをご紹介。一人で考えるより、あなたの【お悩み解決】や【夢の実現】に、その分野の専門家の力を役立てましょう。
このカテゴリで人気のQ&Aランキング
- 4セッション(session)ってクッキー...
- 5アロー演算子のみの関数指定
- 6なぜ、unexpected T_VARIABLEになる...
- 7Parse error: syntax error, unexpe...
- 8PHPデータベース・テーブルの移行
- 9PHPのParse errorについて質問
- 10syntax error, unexpected '}' とい...
- 11php ラジオボタンのデータの渡し方
- 12PHPの関数実行
- 13syntax error, unexpected $end ...
- 14リダイレクトでPOST
- 15php mysql で WHERE句内に変数を入...
- 16No such file or エラー。
- 17クエリストリングが多くなるときの...
- 18preg_replaceを使って特定の文字を...
- 19文字列から、特定の文字を削除したい
- 20初歩的すぎますが、同じ名前の比較...