- ベストアンサー
ファイルアップロードを教えて下さい。
お世話になります。 php初心者です。 初歩的な質問になると思いますが… ローカルでファイルのアップロードのスクリプトの練習をしてるのですが上手く行きません。 アップロードしたファイル名が全て同じになります。 ディレクトリ構成として htdocs ├128.php └phpbook(ディレクトリ) └128-2.php ■128.phpの中身 <form action="./phpbook/128-2.php" enctype="MULTIPART/FORM-DATA" method="POST"> ファイル:<input type="FILE" name="upfile"> <input type="submit" value="アップロード"> </form> ■128-2.phpの中身 <?php if(move_uploaded_file($_FILES['upfile']['tmp_name'], "./htdocs/phpbook/") ==FALSE){ print "失敗しました。"; }else{ print ($_FILES['upfile']['name']); print "をアップロードしました。"; } ?> アップロードは出来てるのですが、phpbookディレクト内にphpbookという拡張子が何もついてないファイルがアップロードされてしまいます。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 まずは、質問内容を詳細に書いてくださり、ありがとうございます。さて… 「 128-2.php 」の2行目に「move_uploaded_file」という関数がありますが、この第2引数には、実際にアップロードしたいファイルの名前を指定する必要があります。この観点から質問者さんのコードを拝見すると、ディレクトリ「~phpbook/」迄は指定しているけれど、残念ながら肝心のファイル名が指定されていないようです。このために php が「 phpbook 」をファイル名とみなしてしまい起こっている不具合だと思われます。 ためしに2行目だけを、たとえば以下のものと入れ替えてみてください。前段の「 128.php 」が読み込んだファイル名が反映され、うまく動くと思われます: -------------------------------------------- if(move_uploaded_file($_FILES['upfile']['tmp_name'], "../phpbook/".$_FILES['upfile']['name']) == FALSE){ -------------------------------------------- もし不具合・追加でのご質問等ありましたら、お気軽にどうぞ!
その他の回答 (1)
- umota
- ベストアンサー率46% (150/324)
マニュアル 第 38章ファイルアップロードの処理 にズバリ答えが載っています。
お礼
ご連絡が遅くなってしまい申し訳ありません。 分かりやすく説明頂いて、ファイルの方も無事アップする事が出来ました。 有難うございます!