• 締切済み

PostgreSQLのラージオブジェクトを使って画像を表示したい

alfeimの回答

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.1

別に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

  • PHPでアップロードした画像が表示されません

    現在、Redhat9+Apache+PHP+PostgreSQLでサイトを構築しています。 PHPはRPMでインストールしました。 php-4.2.2-17.2.i386.rpm PHPでアップロードのフォームを作成し、jpegやgifなどの画像ファイルをアップロードし、表示するパスをDB(PostgreSQL)で管理しています。 画像は/tmp/ に一度アップされ、指定のパスに正常にコピーされているようなのですが、実際、ブラウザで見ると×印がでて表示されません。 アップロードされた画像をダウンロードして、画像処理ソフトなどで開いてみたのですが、表示されません。 アップロードの際に画像ファイルが壊れてしまったように思えます。 どなたか、解決方法等をご存知の方がいらっしゃいましたらご教授願えないでしょうか? よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP+PostgreSQLを使ってPDFファイル管理DBを作成したい。

    現在、PostgreSQL+PHPでPDFファイル管理DBを作成したいと思っています。 開発環境は、 Solaris8 Apache1.3.12 PostgreSQL7.1.3 PHP-4.1.0 で行っています。 今、PostgreSQLのラージオブジェクトを使用してPDFファイルをDBに登録したいと考えております。 ここで、質問なのですがPDFファイルをDB登録するときにライブラリ等必要なものがありますでしょうか? また、PHP+PostgreSQLの環境で、PDF管理DBのサンプルがあったら教えていただけないでしょうか? よろしくお願いいたします。

    • 締切済み
    • PHP
  • PostgreSQLで作成したデータについて

    RedHatLinux9.0にPHPとPostgresql(RPMインストール) をインストールして、WEBアプリ検証をしていますが PostgresqlのコマンドでDBを作成し、 コマンドライン上では、表示できますが、 Mozilla(ブラウザ)からは表示できません。 DB呼び出し用のスクリプトはApacheの ドキュメントルートの/var/www/htmlにおいています。 DBの保存場所が悪いのかと考えて、作成したDBを findコマンドで検索しますが、表示されません。 Postgresqlのコマンドで作成したDBファイルは どこのディレクトリに保存されているのでしょうか? MYSQLのようにMYDやFRM、MYIというようなファイルの 拡張子をつけないと検索できないのでしょうか? PostgreSQLの場合はどんな拡張子になるのでしょうか? ご存知の方は教えてください タカ

    • 締切済み
    • PHP
  • PHP+PostgreSQLで画像処理について

    初心者です。 わかる方教えて下さい。 使用DBは、PostgreSQLです。 商品説明のWEBDBを作ろうと思っています。 Webから登録画面で商品画像をアップロードさせたいのですが、その画像は、フィールドに保存させた方がいいのですか?また可能なのですか? それか、ディレクトリーに画像をアップし、フィールドには、登録した画像のパスを登録し、IMGでパス指定をDBから読み込んだほうがいいのでしょうか? 皆さんはどうしているのでしょうか? 分かり図らい説明でごめんなさい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとpostgreSQL プルダウンの作成

    いつも大変お世話になっております。 現在、PHPとpostgreSQLを使用し、webシステムの勉強をしていますが、フォームにプルダウンを設置した際の、PHPのデータの受け渡し、また、DBのテーブルへの登録方法がわかりません。プルダウンには選択肢を3つ付ける予定でおります。 postgreSQL側のレコードの作成方法と、PHPを利用しての登録の仕方で困っています。 ご教授のほど、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 絵文字の入力・表示について(掲示板)

    PHP/PostgreSQLでの掲示板を作成しているのですが、i絵文字がちゃんと入力されず、『?』マークになってしまいます。DBはEUC_JPで,rawurlencode関数で普通の文字はちゃんと入力され表示も出来るのですが.... DBに入れる前に、『?』になっています... よろしくお願いします。

  • GDで生成したはずの画像が文字列として表示される!

    PHP初心者です。いろいろ調べたのですが解決策が見つかりません。なんとか解決策を教えてください。よろしくお願いします。 imagejpeg()で画像を生成したつもりなのですが、文字列として下のように表示されてしまいます。 ・・ JFIF ・>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality 棧C $.' ",# (7),01444 '9=82<.342棧C 2! !2222222 画像データがそのまま文字で打ち出されているようです。 こちらの環境は、 ・さくらインターネットの共用サーバー ・php.iniはデフォルトのまま ・文字コードは、euc-jp ソースは以下の通りです。 <?php Header ("Content-type: image/jpeg"); $test = imagecreate(200, 200); $bcolor = imagecolorallocate($test, 0, 0, 0); imagejpeg($test); imagecolordeallocate ($test,$bcolor); imagedestroy($test); ?>

    • ベストアンサー
    • PHP
  • 画像の格納

    mysqlに画像を格納してPHPで表示させようとしてるんですが、うまくいきません。下記のような文字列が延々と表示されます。 ????? JFIF? ?H?H?????C?$;'$!!$I47+;VL[YULS どうしてこうなるのでしょうか?

  • postgresqlとmysqlの違い

    こんにちは。 OSはRedhatLinux7.1を使っています。 Apache_1.3.26 php-4.2.1 PostgreSQL-7.2.1 mysql-3.23.52 を使ってWebアプリケーションを作ろうとしています。 Apache+php+PostgreSQLで、 SJISで書いたphpプログラム(htmlのページの表示もSJISに指定)を使って表示されたページからPostgreSQLにデータを登録しようとするとエラーになります。 Warning: pg_exec() query failed: ERROR: Invalid EUC_JP character sequence found (0x8971) となります。 同じようにApache+php+mysqlでやってみたら登録できます。 PostgreSQLはSJISでデータを登録できないのでしょうか? どこをどのようにすればいいのかわかりません。 初歩的で申し訳ありませんがアドバイスお願いします。

  • PHPとPostgreSQLがつながらない

    PHPとPostgreSQLの初心者です。PHPとPostgreSQLを 使ってプログラムを作ろうと思ってます。 開発はPC上で、PostgreとPHPサーバはLinuxマシンに あります。まず最初にPostgreのインストールですが、 Fedora Core5 に着いていたPotsgreSQL8.1.3を入れ ました。設定としては、 postgresql.confでは listen_address='localhost,192.168.1.3' としました。192.168.1.3はLinuxマシンのローカル アドレスです。 pg_hba.confではconnectionのところで host all all 192.168.1.3 255.255.255.0 tyust としました。その後 host all all 0.0.0.0 255.255.255.0 tyust とかいろいろ試してみました。 一方PHPの方はほとんど何も設定をしていません。と いうか設定方法がよくわかりません。 以上の環境で、簡単なPHPプログラムをPostgreにつなげないで実行したところ問題なく動きました。 20行くらいのPHPを書いてみましたが、特に問題はあ りませんでした。 PostgreSQLの方は、PCからSSHで入って、接続テスト 用のDBを作り、テーブルも3つ作って、データを数件 Insertしました。 いよいよPHPからDBにつなぐことになったのですが、 プログラム上では以下のように書きました。 <?php    print "こんにちは"; $conn = pg_connect ('host=192.168.1.3 port=5432 dbname=phptest user=postgres');    print "こんばんは"; if (!$conn) { print "PostgreSQLへの接続に失敗です"; exit(); } else ・ ・ して実行したところ、「こんにちは」は表示されま したが、「こんばんは」以下はは表示しませんで した。$conn の先には進んでいないようです。 当然ここに書いた以外にも設定を変えてみましたが、 つながりませんでした。よろしくお願いします。

    • 締切済み
    • PHP