move_uploaded_fileは実行さえできません

私はかなりPHPに新しいとmove_uploaded_file関数を介して画像をアップロードしようとしています、コードのセクションを見てくださいと助けてください。ちなみに、私はIE8を使用しています。

$name = $_FILES['fileToUpload']['name'];
$basename = @basename($name);
$msg .= " File Name: ". $_FILES['fileToUpload']['name'] .", ";
$msg .= " File Size: ". @filesize($_FILES['fileToUpload']['tmp_name']);
if (isset($_GET['id'])) {
 $id = $_GET['id'];
 //check and/or create dir for user images
 if (!is_dir("uploads\\".$id."\\images")) {
 $dir = "uploads\\".$id."\\images";
 mkdir($dir, 0777);
 if (!move_uploaded_file($basename, $dir)){$msg = "COULD NOT MOVE FILE";}
}
}

$ msg "COLLD NOT MOVE FILE"は実行されず、ファイルは移動されていません 前もって感謝します。

0
私は行が if ステートメントのために全く実行されていないと思う。それを確認してください。
追加された 著者 deceze,
var_dump($ msg);
追加された 著者 Dave Kiss,
定義されていないので、 @ 文字列を作成する前に設定されていないかどうかチェックしてみてください。
追加された 著者 Lawrence Cherone,
なぜあなたのコードで "\"の組を使用しているのか、単一の "/"で置き換えてみてください。
追加された 著者 punit,
あなたは正しいです、dir uploads /.$ id./imagesが既に作成されているため、実行されていませんでした。ありがとう
追加された 著者 AlphaPhantom,

2 答え

試してください:

//check if you have form enctype="multipart/form-data" in your form as well
$name = $_FILES['fileToUpload']['name'];
    $basename = @basename($name);
    $msg .= " File Name: ". $_FILES['fileToUpload']['name'] .", ";
    $msg .= " File Size: ". @filesize($_FILES['fileToUpload']['tmp_name']);
    if (isset($_GET['id'])) {
     $id = $_GET['id'];
         //check and/or create dir for user images
         if (!is_dir("uploads/".$id."/images")) {
             $dir = "uploads/".$id."/images";
             mkdir($dir, 0777);
             if (!move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $dir."/".$basename)){$msg = "COULD NOT MOVE FILE";}
        }
    }           
0
追加された

それは、完全なパスを使用するのに役立つかもしれないとダブルバックスラッシュで何が起きているのでしょうか、おそらくそれは窓の事です。私はあなたがこれを実行しているディレクトリが書き込み可能ではなく、mkdirでそれを要求しているディレクトリを作成できないため、ファイルを作成できないと思います。

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com