プロが教える店舗&オフィスのセキュリティ対策術

現在画像のアップロードをし、同時に画像名と画像の説明文を登録するフォームを作っています。

******************************************************
画像名、説明文→AサーバーのDB(PHPファイルと同じサーバー)
画像ファイル→Bサーバーの画像格納フォルダ
******************************************************

上記のように別々のサーバーに登録したいのですがどのように実現したらよいのでしょうか?

A 回答 (2件)

サーバが違うという事はスクリプトを複雑にします。


不可能じゃないけど、それほど簡単じゃ無いと思います。

いくつか条件があると思います。
BサーバはPHPが動くのですか?
BサーバからAサーバへDB接続は出来ますか?

この辺が問題なければ比較的シンプルに出来ると思います。
この場合は、Aサーバのスクリプトから直接Bサーバへアップロードさせ、その画像名や説明文をAサーバへDB接続して登録すれば良いと思います。必要とあれば、処理終了後、Aサーバにリダイレクトすれば良いです。
DB接続が出来ない場合は、Bサーバへの画像アップロード後、フォームデータをAサーバへリダイレクトして、Aサーバで登録します。リダイレクトするときのURLにデータを入れるときは、例えば
$fname = "test.jpg";
$setsumei = "説明はこちら";
というフォームが来たら、$fname,$setsumei をurlencodeして、
header("Location: http://A-server.url.com/insert.php?fname={$fname}&setsumei={$setsumei}");
としてAに渡せばいいと思います。

さて、BサーバではPHPが動かない場合には、工夫をする必要があります。
Aサーバでアップロードされた画像ファイルを例えばftp関数でBサーバに転送してやる、という方法が考えられます。当然、大きなファイルになるとユーザからのアップロードと、サーバ間のアップロードの2重のトラフィックが発生します。また、多少タイムラグが発生する可能性もあるでしょう。
PHPからのFTP接続に関してはリファレンスマニュアルのftp関数のところを見ればそう難しくないと思います。

http://jp2.php.net/ftp

参考URL:http://taketan.mydns.jp/xoops/modules/bwiki/?PHP
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
BサーバーでもPHPは使用可能です。
BサーバからAサーバへDB接続も可能です。

こんな簡単にできるとは・・・
少し難しく考えすぎてました。

お二方とも本当にありがとうございました。

お礼日時:2006/06/12 15:38

DBへの登録はDBのコネクトさえ確保できるなら


いけるはずなので、特に別サーバーでもいけるのでは?

画像を別サーバーに移すのはmove_uploaded_file()
ではできないので、コマンドラインのncftpputなど
をsystem系の関数で実行して、移動するというのが
単純でよいかもしれませんね
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
ncftpとはFTPクライアントのことでしょうか?

お礼日時:2006/06/12 15:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!