• ベストアンサー

PHP+PostgreSQLで画像処理について

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

  • PHP
  • 回答数3
  • ありがとう数5

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

  • ベストアンサー
  • liq
  • ベストアンサー率38% (228/595)
回答No.3

ディレクトリを作成するのはmkdir関数でできます。ファイルを削除する関数などもありますので、意図されている動作は可能だと思います。 仕入れ先会社なら相手が決まっていて日々増えるわけではないと思いますので、あらかじめ必要と思われるディレクトリを作っておいて、ディレクトリ名(パス)を納めたテーブルを作り、アップロード時にそれを読み込んで一覧表示させて選択する、というのはどうでしょうか。あるいは、仕入れ先会社(名/ID)がはいったテーブルがあればディレクトリ名と対応させて自動的にアップロード先が決まるようにしてもいいと思います。

fileandfile
質問者

お礼

ありがとうございます。 仕入れ先のテーブルで、ディレクトリのフィールドでを作り、そこで指定されているディレクトリに、アップロード出来るわけですね!大変参考になりました。 また、わからない点があれば質問させていただきます。 本当にありがとうございました。

その他の回答 (2)

  • liq
  • ベストアンサー率38% (228/595)
回答No.2

私はラージオブジェクトとしてデータベースにいれます。テーブルには、オブジェクトIDが入ることになります。利点はバックアップ/リストアが楽なことです。

fileandfile
質問者

お礼

なるほど! ラージオブジェクトとは、画像用(大容量)のフィールドなのですね。参考になりました。

  • angband
  • ベストアンサー率51% (86/168)
回答No.1

僕はblog,clogなどの大きな型はあまり使いません。 それが一般的かどうかわかりませんが、パスで格納する のはいくつかメリットがあると思います。 まずバックアップ(dump)が小さくできることと、WEBなら WEBサーバのキャッシュに入ることです。URLに画像名が 入ればブラウザ側のキャッシュにも入ります。cgiやphp だとキャッシュに入りませんし。

fileandfile
質問者

お礼

なるほど!キャッシュの事まで、考え付きませんでした。解りやすい説明で、大変参考になりました。 商品画像はパスで格納する事のします。 今回WebDBで、取扱商品を公開予定なのですが、社外にWEBサーバがありまして、今、FTPでサイトのデータをUPしたりDownしたりしながら更新業務をしているのです。 出来れば、FTPサーバを触らずにWEB上から登録、変更、削除の更新業務にしたいのです。 PHPでファイルのアップロードが出来るようですが、格納されるのは、すべて指定しているディレクトリーなると思うのですが、出来れば取扱商品の仕入先会社ごとのディレクトリを作りそのなかに格納出来れば、私の理想なのですが、PHPでディレクトリーを作成する事は可能なのですか? 又そんな事する必要がないのでしょうか?みなさんどうしてらっしゃるのですか?

関連する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 インサート処理

    PHPである携帯用アプリを作成しています。 ユーザ登録処理画面でパソコン上からDBにインサートすると成功するのに携帯からだとDBエラーになります。 インサートする項目は10項目あります。 エラー文は以下です。 Warning: pg_exec(): Query failed: ERROR: parser: parse error at ornear "," at character27 . in /~path名(セキュリティ上書きません) 他の処理でインサート項目が1つだとインサートが成功します。 原因がどうしてもわかりません。 Postgresqlの規約があるのでしょうか?それとも携帯での規約でしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PostgreSQLのラージオブジェクトを使って画像を表示したい

    現在、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のなにかサンプルがあれば教えてください。

    • 締切済み
    • PHP
  • PHP MySqlでの複数画像アップロード

    ご質問させていただきます。 複数画像をアップロードするには以下のようなかたちになると思いますが、 画像ファイルを保存するところまでは出来たのですが、同時に画像ファイル名をDBに登録出来ればと考えています。 以下の場合、nameが同一になるので3つのカラム(img1,img2,img3)にそれぞれ登録するにはどのようにすればいいでしょうか? <input type="file" name="uploadfile[]" /> <input type="file" name="uploadfile[]" /> <input type="file" name="uploadfile[]" />

    • ベストアンサー
    • MySQL
  • phpでの画像出力

    フォームでアップロードした画像(jpg)を、base64でエンコードしてテキストとしてDBに格納しています。 そのデータをDBから取り出して、PHPで出力したいのですが、上手く行きません。 下記のような手順で試しましたが、ダメでした。 ※php5とMySQLです。 $img = base64_decode("※DBから取り出したテキスト"); header("Content-type: image/jpeg"); echo $img; 尚、下記のような形では画像表示出来ましたが、出来ればphpからの出力をしたいと考えています。 <img src="data:image/jpeg;base64,※DBから取り出したテキスト" /> php初心者ですが、よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 画像のアップロードに関して

    お世話になっております。画像をブラウザ上からアップロードし、指定のディレクトリ(その都度mkdir関数によりディレクトリを生成)に保存するスクリプトを組んでおりますが、DBにファイル名(または保存先?)を登録するような内容を考えております。 そこでいくつか質問があり投函させて頂きます。 1・アップロードする際、クライアントのPC内にあるファイル名が日本語だった場合、そのままアップロードさせて問題が発生する事が考えられるか? 2・上記のように日本語である事を想定し、半角英数でリメイクするスクリプトを構築する場合、どのようなリメイクが適当で、どういったスクリプトを記述する事になるか? 3・アップロードさせる際、画像以外をアップロードしないよう規制をかけるにはどうしたら良いか? 4・ディレクトリに画像をアップロードさせる訳だが、後にブラウザ上にその画像を表示させるには、DBへ保存するのは、やはり<img src="…… といったコードを登録する事になるのか? の4点です。スキルが無くここ数日頭を悩ませながら、進んでは振り出しに戻るを繰り返しており、丸投げのつもりは一切無いのですが、ポイントをご指導いただければ幸いに思い、投函させて頂きました。 お手数お掛けいたしますが、ご教授のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHPによるMySQLを使ったアップローダについて

    初めて投稿させて頂きます。 現在、PHPを使って、DB(MySQL)に情報を登録するシステムを構築しています。 そこで、質問なのですが、フォームからファイルをアップロードさせ、送信したファイルをDBに保存するにはどうすれば良いのでしょうか? DBを使った掲示板のプログラムを参考にしているのですが、肝心のファイルは、DBにファイル名が登録されるだけで、ファイル自体はPHPで設定したディレクトリに保存されます。 ファイルをホームページの領域に保存するのではなく、DBに保存する事は出来ないのでしょうか? また、可能であれば、どの様にDBに保存すれば良いのか・フィールドの型は何にしたら良いのでしょうか? わかりにくい説明ですいませんが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • CLEVER BBSでテストしてみたんだけど、画像の部分が×印に・・

    おはようございます。 みなさんのおかげで少しづつホームページできております。^-^本当にありがとうございます。 CGIの設置に関してなんですが、画像付BBSを作ろうと思って、CLEVER BBSに挑戦していてスキンも上書きしてやっとできたので、ためしにテストしてみたところ、文字などの書き込みはできるのに画像を貼り付けても画像の部分だけ×印になっていて、表示されないのです>< たぶんなんですが、bbsini.cgiの変更箇所で、アップロードディレクトリ(34行目) アップロードディレクトリのURLパス(38行目) を間違えているとおもうんです。 パーミッションは、何回も確認したので間違っていないとは思うのですが。。 画像以外は完璧にできています。ちなみに掲示板のURLは、http://サイト名/clever.cgiでみれるのです。 わたしは、 アップロードディレクトリを$ImgDir = "./img/"; アップロードディレクトリのURLパスを$ImgUrl = "http://サイト名/cgi-bin/clever/img/";にしました。 どこが間違っているのか教えてください。お願いいたします。

  • 画像がかわらない...orz

    php初心者なので、とんちんかんな質問をしていたらすいません。 登録した画像を変更した時、DBに保存してある画像名もディレクトリに 保存してある画像もちゃんと最新になっているのに、呼出すと変更前の画像が 表示されてしまいます。 呼出している<img src="http://~/XXXXXX.jpg" />のパスもファイル名も 正しい内容になっています。 それに、不思議な事にブラウザの更新ボタンを押すと正しい画像が表示されます。 ど~して1つ前に処理した画像が出てしまうのでしょう... こんな質問内容でわかって頂ければどなたか助けて下さい!<(_ _)>

    • 締切済み
    • PHP
  • PHPからPostgreSQLにアクセスするには?

    PostgreSQL-Ver8.0.2のWindows版をWindowsXP上に導入し、pgAdmin IIIなどを使いなんとか自前のユーザ名、パスワードを設定して、データベースおよびテーブルを作成しました。そしてコマンドプロンプト上では、Linux環境と似たようなコマンドラインからの入出力ができるようです。 ところが、PHPにDBアクセスのルーティンを埋込み実行するとエラーになります。おそらく、PostgreSQLサーバー起動時のパラメータ設定およびパスの通し方に問題があると考えられるのですが、どなたかご存知の方お知恵を貸してくださいませんか? エラーメッセージは下記の通りです。 Fatal error: Call to undefined function: pg_connect() in C:\Apache2……