• ベストアンサー

画像のアップロード

現在画像のアップロードをし、同時に画像名と画像の説明文を登録するフォームを作っています。 ****************************************************** 画像名、説明文→AサーバーのDB(PHPファイルと同じサーバー) 画像ファイル→Bサーバーの画像格納フォルダ ****************************************************** 上記のように別々のサーバーに登録したいのですがどのように実現したらよいのでしょうか?

  • baito
  • お礼率38% (8/21)
  • PHP
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
回答No.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
baito
質問者

お礼

回答ありがとうございます。 BサーバーでもPHPは使用可能です。 BサーバからAサーバへDB接続も可能です。 こんな簡単にできるとは・・・ 少し難しく考えすぎてました。 お二方とも本当にありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

DBへの登録はDBのコネクトさえ確保できるなら いけるはずなので、特に別サーバーでもいけるのでは? 画像を別サーバーに移すのはmove_uploaded_file() ではできないので、コマンドラインのncftpputなど をsystem系の関数で実行して、移動するというのが 単純でよいかもしれませんね

baito
質問者

お礼

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

関連するQ&A

  • フォームからアップロードした画像を、確認画面で確認後に登録するには?

    宜しくお願いします。 PHP4+MySQLで簡単なWebシステムを構築しています。 1つのフォームから、数点の画像をアップロードして登録したいと思っています。 「登録内容はこちらでよろしいですか?」というような確認画面で、いったん確認画面に画像を表示させます。 ここでOKなら登録、というオペレーションです。 一見簡単なのかと思いきや、どうしても実現させる方法がわからずに困っています。 当初は、確認画面に移る段階で、PHPのテンポラリーファイルを、別の一時ディレクトリへ格納しようとしました。 ところが技が足りないのか、セッションが切れた場合などに、サーバーにファイルが残るようなコードになっちゃいます。 悩んだ末、サーバーに対して「フォルダに2時間以上あるファイルは自動で削除する」ような設定を施すしかないと思ったのですが、ライアントの都合上、できればサーバー設定をいじってほしくないと言われまして。。。 もしかしたら、すごく簡単なのかもしれないのですが、完全にハマってしまっています。 なにか方法がありましたら是非ご教示ください。 登録者は特定の人たちなので、OSやブラウザなどの使用環境は、あるていど統一できます。 ですからPHPだけでなくJavaScriptを絡めてでも、実現できたらと思っています。 どうか宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • アップロードの経過時間の表示

    初めてお世話になります。 フォームから入力したファイルのサイズの最大値が大きくするにつれて、「サーバーにつながらない」と勘違いされるユーザが多くなってしまいました。 色々悩み、画像であれば、画像分割アップロードなども考えましたが、ここでは動画ファイルもアップロードできるようにしたいと思っています。 さて、私が実現したいのは、アップロードの時間やアップロードされたサイズの経過を表示するものです。 PHP ではこのような処理はできませんでしょうか。 また PHP 以外にその方法があればご教授いただければと思います。 オーサリングツールで似たような機能が実現できるとも聞きましたが・・・。

    • 締切済み
    • PHP
  • 画像アップロードで不具合

    アップロードしたgif画像をimagegif()やmove_uploaded_fileでサーバーのフォルダに保存して表示しようとすると表示されません。 パーミッションが600になっていたので、ためしに777にしてもだめでした。 画像サイズや名前などは正しく表示されています。しかし、ためしにFTPでダウンロードしてみると「そのようなファイルやフォルダはありません」というようなことが表示されます。 サーバーはlinuxなのでlsで見てみると ファイル名.gif? と?が付いて表示されていました。 なにがどうなってるのでしょうか? php4でも5でも同じでした。 fopenなどは使えます。 保存時などにエラーは出ていません。

    • ベストアンサー
    • PHP
  • ★PHP★画像アップロードの際に余白追加

    PHPで画像アップロードフォームを作成しています。 その際に、全ての画像が 500*500の画像になるようにアップロードさせたいです。 (様々な画像登録をされるからです。) 登録まではできたので、あとはサイズ変更のみです。 質問が説明不足かもしれませんので、 何かヒントでもいただけると助かります。 よろしくお願いします。

    • 締切済み
    • PHP
  • 携帯での画像アップロード方法

    携帯サイトを作っています。 画像をアップロードする機能が一部にしかないということで、 それを実現するには画像を添付したメールを送る方法がとられている事が今までの質問などを読み理解できました。 しかし、それは理解できても何から始めればいいのかさっぱりです。 まず、何を始めればいいのでしょうか。参考になる本やページがあれば教えて頂けませんか? 今はjspで作成しております。 phpは本当に少しだけ、cgi,perlなどの知識は皆無ですが必要とあらば学習していくつもりです。 実現したい事は以下の通りです。 「携帯で撮った画像を添付したメールを送信するとサーバーが処理をしてDBに登録(画像も本文内容も登録)」

    • ベストアンサー
    • HTML
  • PHPでアップロードした画像が表示されません

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

    • 締切済み
    • PHP
  • 画像のアップロードができない

    gooの画像アップローダーから画像をアップロードしたいのですが、できません。まず、参照をクリックしてファイルを開きます。それから、送信をするんですが、ページが表示されません。ワタシがアップロードしたいファイルは、C\DocumentsandSettings\聡美\MyDocuments\Mypictures\gazou005.jpgですが、これをどこをどういう風に書き直したらよいかもわかりません。書き直したファイル名をまず書いて教えていただけませんか? ほーむぺーじの場合は、まずサーバーに登録してからアップロードしますよね。ファイル画像の場合はどうなんでしょうか?あっぷろーどのまえになにかすることってありますか?そういうことも含めて教えてください ちなみに、ほかのサイとでも、アップロードを試みましたが、やはりだめでした。よろしくお願いします

  • PHPを使って、1ページ内で新規レコードと画像アップロードしたいのですが・・・

    PHP4、MySQL4初心者です。 今回、会員名簿のDBをつくり、PHPを使って、管理者が新規会員(レコード)を登録できるようにプログラミングしています。 フィールドは、「ID」「名前」「住所」「コメント」等の数字や文字データばかりでしたが、今回会員の写真(jpg)データも新規会員登録画面で一緒に登録できるようにして欲しいと要望があり、色々調べておりますが四苦八苦しております・・・ 基本的な構造としましては・・・ HTMLファイルにformタグを使って、入力してもらったデータをpostで飛ばして、別ファイル(php)でsql文を書いて、insertしている形です。 その際に一緒に画像も、sbumitする際に所定のフォルダにアップロードして、そのファイル名をimg_id.jpg みたいな形で接頭語とidをくっつけて、作成して、その画像ファイル名をさらに、DBのフィールド”img_name”に登録したいのです。 画像はBLOBでDBにアップではなく、あくまでFTPで後で入って処理しやすいように、public以下のフォルダ内に特定のフォルダを作成してそこにアップしたいと思います。 1ページ以内で処理するということで、かなり困っていますが、いい方法はないでしょうか・・・? みなさん! どうかお知恵をお貸しくださいませ!! ちなみに現在できている登録のコードはこちらです。 -------------(HTML)------------------------------------- <html> <body> <h2>新規会員登録</h2> <form action="insert.php" method="post"> ■会員名 :<input type="text" name="input_name" /><br> ■住 所 :<input type="text" name="input_addr" /><br> ■コメント:<input type="text" name="input_comm" /><br> <input type="submit" value="-- 登録する --" /> </form> </body> </html> -------------(HTML)------------------------------------- -------------(PHP:insert.php)-------------------------- <? $db = mysql_connect("localhost","ユーザー名","パスワード"); mysql_select_db("データベース名"); $query = "set NAMES euc"; $result = mysql_query($query); // ここで、HTMLフォームの中のinputタグに対応したデータを取得 $name= $_POST["input_name"]; $addr= $_POST["input_addr"]; $comm= $_POST["input_comm"]; $query = "insert into テーブル名(name,addr,comm) values ('$name','$addr','$comm')"; $result = mysql_query($query); mysql_close($db); ?> <html> </head> <body> <h2>新規会員登録</h2> <p>データ登録完了</p> </body> </html> -------------(PHP)-------------------------------------- phpで画像をアップロードするときは formの中に ”enctype=\"multipart/form-data”を入れたり、 ”move_uploaded_file”を使ったりと、断片的には知識はありますが、 体系的に理解できません・・・ どなたか、アドバイス頂けましたら幸いです。 あるいは、解説してあるサイトや、フリーのサンプルスクリプト等教えて頂けましたら助かります・・! どうぞ、どうぞよろしくお願い致します!!

  • 画像のアップロードに関して

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

    • ベストアンサー
    • PHP
  • 候補画像から選択して画像をアップロード

    通常、画像のアップロードは <form action="upload.php" method="post" enctype="multipart/form-data"> <p> 画像をアップロードする<br> <input type="file" name="pic"> </p> <p> <input type="hidden" name="code" value="<?php echo $code ?>"> <input type="submit" name="submit" value="アップロード"> </p> </form> というフォームを使っています。 ↓ ★画像アップロードフォーム http://pips.chu.jp/0/up/upload.php これで、「参照」を押すと、ローカルのフォルダから画像を選べますが、 あらかじめ作成した画像の候補の中から1つ選んでアップロードするにはどうすればよいでしょうか。 画像の候補は、「img」というフォルダを作り、その中に格納しています。 ↓ ★候補画像 http://pips.chu.jp/0/up/img/sample1.jpg http://pips.chu.jp/0/up/img/sample2.jpg http://pips.chu.jp/0/up/img/sample3.jpg 「参照」のボタンを押すと、「img」フォルダに行く方法が知りたいです。 また、ラジオボタンやセレクトボタンを使った方法があれば教えて頂けないでしょうか。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP