5

ファイルをアップロードしようとしていますが、何も機能していません。

 <!DOCTYPE html>
 <html><body>

            <form id="exp" enctype = "multipart/form-data" action="../cgi-bin/uploadPic.php">
                <input type="file" id="profilePic2" name="newPic"></input> <br /><br /><br />
                <input type="submit" value="Upload Pic" style="color:black;"></input>
            </form>
  </body></html>

私のphpファイルが実行されています。ずさんなコードに注意してください、私はエコーを介してデバッグしようとしています。

 <html>
 <body>
 <?php

$loadFile = true; // error code
$allowedExts = array("jpg","jpeg","gif","png");
$extension = end(explode(".", $_FILES["newPic"]["name"]));

$file = $_FILES["newPic"];
$picIncluded = false;

if((    ($_FILES["newPic"]["type"] == "image/gif")
||  ($_FILES["newPic"]["type"] == "image/jpeg")
||  ($_FILES["newPic"]["type"] == "image/png")
||  ($_FILES["newPic"]["type"] == "image/pjpeg"))
&&  ($_FILES["newPic"]["size"] < 5000000)
&&  in_array($extension, $allowedExts)){
    if($_FILES["newPic"]["error"] > 0){
        echo "pnl"; // error code returned to client
    }
    else if(file_exists("../profile-pics/" . $file["name"])){
        echo "pld"; // picture loaded duplicate
    } else {
        $picIncluded = true;
        echo "finally";
        if(move_uploaded_file($file["name"]["tmp_name"],"./" . $file["name"])){
            echo "Success again!";
        }
        $path = "../profile-pics/" . $file["name"];
    }
}
if(is_uploaded_file($_FILES["newPic"]["name"]["tmp_name"])){
    echo "Good news!";
}

 ?>

 </body>
 </html>

とにかく、関数move_uploaded_file()は、一時ファイルが見つからないため、falseを返します。is_uploaded_file()もfalseを返します。私の拡張機能とすべてが正しいですが、それでも役に立たず、アップロードされているファイルはありません。どうすればこれをデバッグできますか?

4

2 に答える 2

5

これを変える

if(move_uploaded_file($file["name"]["tmp_name"],"./" . $file["name"])){

if(move_uploaded_file($file["tmp_name"],"./" . $file["name"])){

あなたが割り当てたので

$file = $_FILES["newPic"];
于 2013-03-13T05:03:36.800 に答える
2

また、セキュリティチェックのために、アップロードする前にis_uploaded_file()をチェックする必要があります。

if(is_uploaded_file($_FILES["newPic"]["tmp_name"])){
 if(move_uploaded_file($_FILES["newPic"]["tmp_name"],"../profile-pics/" . $file["name"])){
  echo 'file uploaded...';
 }
}else{
  echo "Possible file upload attack: ";
}
于 2013-03-13T05:10:59.003 に答える