• 締切済み

ローカルからサーバーへのファイルアップロードについて

chie65536の回答

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

WEBページのフォームタグを以下のようにします。 <form method="POST" action="CGIプログラム名" enctype="multipart/form-data"> こうすると「CGIプログラム名」で指定したCGIの標準入力に、 「最初の<INPUT>タグのヘッダ」 「空行」 「最初の<INPUT>タグのデータ」 「空行」 「2番目の<INPUT>タグのヘッダ」 「空行」 「2番目の<INPUT>タグのデータ」 と言う形式で入力内容が送られて来ます(どのようなデータ形式で送られて来るかは、サーバーにより異なるので、実際に試して内容を確認するしかありません) CGIでは、標準入力に送られて来た入力内容を「空行」で区切って、それぞれのタグのヘッダを調べ、それが画像を示すものであれば、引き続く「データ」部分を画像ファイルとして保存します。 実際に標準入力に送られて来るデータの内容が知りたければ、以下のようなCGIプログラムを置いて ----------------------------------- #/bin/csh echo "Content-Type: text/html" echo "" cat > ./inputdata echo "<HTML><BODY>受信データ保存!<BR></BODY><HTML>" ----------------------------------- フォームから実際にアップロードし、サーバーに保存された inputdata を見てみましょう(inputdata の中身を見る為に、それをサーバーからローカルに転送する場合はバイナリモードでFTPして下さい)

jyopper
質問者

補足

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <?php if (empty($UserFile)) { # 変数が未定義の時にTRUE ?> <form method="post" action="file_up.php3" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" size="65536"> <input type="file" name="UserFile"> <input type="submit" value="アップロード"> </form> <?php } else { chmod($UserFile, 0777 ); copy($UserFile, "/home/httpd/test/."); if (is_uploaded_file($UserFile) ) { // HTTP POSTでアップロードされたファイルか? print "アップロードされました。<br>\n"; } else { print "<FONT COLOR=\"RED\">アップロードされませんでした。</FONT><br>\n"; } unlink($UserFile); // 一時ファイルの削除 } ?> </body> </html> ====================================== 上記のように記述しました。 その結果、 Warning: Unable to create '/home/httpd/test/': No such file or directory と表示されます。 /home/httpd/testフォルダは実在するのですが、 『作成できません』と表示されるのは そのフォルダがサーバーではなくローカルの ディレクトリをみているということですよね?

関連するQ&A

  • ファイルをアップロードさせるには?

     自宅にある古いパソコンをサーバーパソコンにし、ファイルサーバーを構築したく、ただいま奮闘中です。  サーバーにあるindex.htmlをホームページとしてインターネット上に公開できたまではいいのですが、そのページからリンクしてあるアップロードページの作成で行き詰まりました。  Yahoo!のブリーフケースにあるアップロードページのように参照ボタンがあり、それをクリックするとダイアログが開き、アップロードするファイルを選択。最後にアップロードボタンでアップロード開始というものにしたいのですが、どのようにすればいいのかわかりません。  作成ソフトはホームページZEROを使っており、下記のボタンを作成してあります。が、ボタンがあるだけで、機能していません。  アップロードするファイルの選択画面を開くようにする方法と、それをアップロードするようにする方法を教えてください。

  • ローカルからサーバへのアップロード

    PHPでWEBサイトを作っています。 ローカルにある画像をサーバにアップする機能を作りたいのです。 <form ENCTYPE="multipart/form-data"> <input type="file"/> を使って、参照したファイルを どうしたら、サーバの特定のディレクトリに保存できるのでしょうか。 (メールの添付機能と同じだと思う脳ですが、方法がわかりません)

    • 締切済み
    • PHP
  • PHPを使ったWEBサイトでアップロード

    プログラミングを初めて3か月余りの未熟者です。 PHPでWEBサイトを作ろうとしています。 自分のローカル環境にあるものを サーバーにアップロードする、というものを作ろうとしています。 そのためにはどのような技術が必要なのかがわかりません。 流れとしては、 1.ファイル参照ボタンからファイルを選択 2.「アップロード」ボタン押下 3.その際にファイル名が不正ではないか、ファイルの存在の有無等のチェック 4.アップロード開始 5.指定場所にアップロード完了 6.アップロードしたファイルの存在をWEBサイト上で確認する 7.ユーザーはダウンロードしてそのファイルを共有できる 1~3までは問題なく作れると思います。 4以降がわかりません。 ・どうやって場所を指定するのか? ・そこにどうやって保存するのか? ↑まずはこの2つを理解したいです。 「サーバー」の概念がわかっていないところもあるので レベルの低い質問かもしれません。 また、参考になる書籍、サイト等があれば教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Basp21で大きなファイルのアップロード

    ファイルを4つ選択することができる画面があります。 アップロードボタンを押下すると選択したファイルを サーバーにアップします。 inputのnameは、File1~4です。 Basp21のページでは 大きなファイルは、FormSaveAsを複数回呼ぶ と書いてありました。 どんなループを回せばよいのか分かりません。 よろしくお願いします

  • ファイルのアップロード

    ファイルのアップロードは http://49uper.com/memo/web/php_fileupload.html の手順でできました。そこで、 「アップロードが完了しました」の表示が出たあとに最初のアップロードボタンがある画面に戻りたいのですが、どのようにすればよいでしょうか?ブラウザの戻るボタンとかでは動作が変です。PHP初心者のためイメージがわきません。参考HPなどありましたら宜しくお願いします。

    • ベストアンサー
    • PHP
  • ファイルのアップロード

    WEBメールなどでよく使われている、ファイルのアップロードで、ホームページの参照をクリックすると、自分のPCのファイル一覧がウインドウ表示され、ファイルを選択してアップロードできます。  そういうホームページを作成するには何を使えばいいのでしょうか?  また、Perlでも可能でしょうか? ご存知の方よろしくお願いいたします。

    • 締切済み
    • CGI
  • ファイルのアップロードに関して

    こんにちは。お世話になっております。 レンタルサーバー上で、ファイルのアップロード画面を作成中なのですが、2MBまでアップロードできるよう下記のように設定しているんですが、300KB(原因はココではないかも知れませんが・・)辺りを境に、アップロードできずに、送信ボタンを押した後、しばらくした後『Internet Explorer ではこのページは表示できません』という表示が出てきてしまいます。 スクリプト側の設定は <input type="hidden" name="max_file_size" value="2000000" /> ちなみに、phpinfoで確認したところ、 max_execution_time 60 post_max_size 100M upload_max_filesize 100M という設定にはなっております。 ローカル上では問題ないのですが、原因は何が考えられるのでしょうか?これはどのような状態になっているか想像だけでも結構です。 お忙しい中恐縮ですが、ご指導いただければ幸いです。宜しくお願い致します。 ※ローカル上ではphp5ですが、レンタルサーバーではphp4になっています。

    • ベストアンサー
    • PHP
  • basp21でのファイルアップロード確認画面

    BASP21を使用してファイルのアップえロードをしています. 現状で<input type=file>で選択したファイルを submitボタン押下でファイルのアップロードする所までは 期待どうりの動作しています. ここに、アップロード確認画面をつけくわえたいのですが 確認画面でどのようにファイルうけ渡せばよいか分からず困っています つまり、 1.ファイル選択画面   ・ファイル選択   ・submitボタン     ↓ 2.確認画面(アップロードするファイルのパス表示)   ・アップするファイルパス表示   ・submitボタン     ↓ 3.アップロード結果表示画面   (ここで始めてファイルのアップロード)   ということがしたいのです. しかし、2の状態でファイル情報を保持し、 3へ受け渡すのかが分かりません. どうか、お力添えお願いします.

  • ローカルフォルダのアップロード

    AASP.net+C#.netでwebアプリケーションを開発しています。 ファイルのアップロードの記事や質問は見かけるのですが、フォルダのアップロードの記事が見当たりません。 フォルダのアップロードはどのようにすればできるのでしょうか? 画面でローカルフォルダを指定し、そのフォルダ内のファイルをすべてサーバへアップロードしたいのです。

  • サーバーに負荷の掛けないファイルアップロード方法

    ファイルをアップロードを行う際に負荷のかからない方法を調べています。 AとBの二種類のサーバーがあり、AサーバーにあるWebサイトから、最終的にBサーバーにファイルアップロードします。 Bサーバーへのアップロードをどうするかを検討しています。 Bサーバーでは、ユーザーがアップロードしたファイルを利用し、Aサーバーに加工したデータを返しています。 そこで、ユーザーがローカルにもっているファイルをアップロードする方法をAサーバーに負担が出来る限りかからないようにするにはどうすればよいか考えています。 ブラウザからアップロードするのはファイルサイズが大きくなると、PHPの設定を超えたり、サーバーへの負荷が大きくなってしまいます。 ⇒サイズが大きくなると時間がかかるのと、運用でどれほどのサイズがアップロードされるか想定ができない状態 Bサーバーに直接FTPでファイルをアップロードする ⇒ユーザーは限られたメンバーなので、権限を与えることは可能ですが、ユーザーの変更時に都度対応する必要があるのがネック 最終的にはFTPでアップロードをしてもらう方法になりますが、ブラウザから負担をかけずにアップロードする方法はないでしょうか? AサーバーにおいているWebページからBサーバーに直接アップロードをできるのが理想ですが、ブラウザからだとAサーバーにどうしてもファイルが一時的に保存されてしまうのではと思っています。 よろしくお願いいたします。 言語  PHP 5.2~ OS  Ubuntu

    • 締切済み
    • PHP