• ベストアンサー

画像ファイルのUPについて

PostgreSQL7+PHP4で物品交換サイトを構築でして、物品の写真(Gif,JPG50Kバイトまで)を掲載するにあたり、PostgreSQL7のレコードに画像ファイルを格納出来るのでしょうか?出来るのであればその仕方を教えてください。 画像ファイルをDBに保存せず、フォルダーに保存するやり方では第三者にそのフォルダーの書き込み権限を与えセキュリティー上よくないと技術本に書いてありましたので。

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

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

> (1)エンコードしたデータの受け側のテーブルフィールド textでOKです。 > (2)レンタルサーバで > (snip) >「保存ディレクトリをhttpの範囲外に置けば」は可能なんでしょうか? もちろん可能です。 httpdの届かない範囲とは、例えばdocument rootが /home/user/pulic_htmlとすれば、 /home/user/pic といった感じで、public_htmlの上位ディレクトリに作ってやればOKです。 ここはhttpdユーザー権限ではアクセスできませんから。 任意のユーザーが画像をUPする場合、public_html内に書込可能なディレクトリを用意してやり、copyコマンドで/home/user/picにコピーしてやります。 表示はDBに保存するときと同様、ヘッダーと同時に送ってやればOKです。 *多分「ヘッダーと同時に…」と言う所でまた引っかかるかもしれませんが、出来るだけ自分で調べて考えてみてください(^^; 考えても分からなければ答えまけどね(^^;

その他の回答 (2)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.3

ついでに、DBに保存orディレクトリに保存は、私だったらDBに保存します。 セキュリティ的にはほぼ同等だと思いますが、バックアップの時、DBに保存しておけば、pg_dumpで全てバックアップ出来ますが、ディレクトリ保存であれば、そのディレクトリも保存しなければなりません。 使い勝手から言えば絶対にDBに保存した方がいいと思いますよ。

BENZ320E
質問者

お礼

ご丁寧にどうも有り難うございました。あとは自力で頑張ってみます(^^)v

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

base64でエンコードしてDBに保存します。 そんで、表示するときにデコードしてやり、ヘッダーと共に送ってやるって方法が簡単です。 後者の > フォルダーに保存するやり方では第三者にそのフォルダーの書き込み権限を与えセキュリティー上よくない は、保存ディレクトリをhttpの範囲外に置けば全然セキュリティ上も問題ありません。 どのくらいのスキルがあるのか分からないですが、一応前者よりも後者の方が少し簡単です。 お好きな方でいいと思いますよ。

BENZ320E
質問者

補足

さっそくの回答ありがとうございます。レベルはまだ初心者です(^^;)。折り返し2点ほど質問があるのですが、(1)エンコードしたデータの受け側のテーブルフィールドは何型にすればいいのでしょうか(2)レンタルサーバで構築していますが、その~「保存ディレクトリをhttpの範囲外に置けば」は可能なんでしょうか?、画像は複数の利用者がUPします。......エンコード、デコードは技術本で見た事があるので調べてみます。構築中のサイトは会員登録、投稿、閲覧、メール転送など完成しており、あとこの画像まわりが出来れば完成なのです~ここまで2ヶ月かかりました。

関連するQ&A