• 締切済み

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

Marionetteの回答

回答No.3

$UserFileにはテンポラリなファイル名なので使えません。 $UserFile_name:ファイル名(転送元ファイルのフルパス) $UserFile_size:ファイルサイズ $UserFile_type:ファイルタイプ(拡張子?) がセットされているので、これを利用してください。 また、basenameはWindowsクライアントからアップロードした場合は機能しないので、環境を選ばないようにするには explodeを使ってください。 但し、この件はPHP3で確認した内容なので、PHP4では可能になっているかも知れません。 以下、スクリプトサンプル。詳細はマニュアル参照のこと。 : : $UPLOAD_DIR = "/home/httpd/test" $UserFile_name = str_replace("\\\\", "/", $UserFile_name); // クライアントが Win, LinuxどちらでもOKなようにパス区切りを統一 $array = explode("/",$UserFile_name); $file = $array[count($array)-1]; if ($file != "") {  if (!copy($UserFile, "$UPLOAD_DIR/$file")) { // または $UPLOAD_DIR."/".$file   print ("failed to copy $file...<br>\n");  } } // ここから内容確認(実際に稼動させる場合は不要) $count = count($array); print "\$count=$count<br>"; print "\$UserFile=\"$UserFile\"<BR>"; print "\$UserFile_name=\"$UserFile_name\"<BR>"; print "\$file_name=\"$file_name\"<BR>"; print "\$UserFile_size=\"$UserFile_size\"<BR>"; print "\$UserFile_type=\"$UserFile_type\"<BR>"; // ここまで : : テンポラリファイルは自動的に削除されるので「unlink」は不要です。 それから、アップロードファイルを保存するディレクトリですが書き込み可能にする必要がありますがそうなっていますか。 しかし、ドキュメントルート下に保存するのはあまり好ましくはないので、例えば「/var/httpd/data/upload」など非公開エリアにすることをお薦めします。

関連する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