0

上传文件.php

<?php
 $allowedExts = array("doc", "pdf");
 $extension = end(explode(".", $_FILES["file"]["name"]));
 if ((($_FILES["file"]["type"] == "text/doc")
 || ($_FILES["file"]["type"] == "text/pdf"))
 && ($_FILES["file"]["size"] < 500000000)
 && in_array($extension, $allowedExts))
   {
   if ($_FILES["file"]["error"] > 0)
     {
     echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
     }
   else
     {
     echo "Upload: " . $_FILES["file"]["name"] . "<br>";
     echo "Type: " . $_FILES["file"]["type"] . "<br>";
     echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
     move_uploaded_file($_FILES["file"]["tmp_name"],
       "upload/" . $_FILES["file"]["name"]);
        echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
       }}
      else { echo "Invalid file";

   }

 ?> 

上传者.php

<form action="uploadfile.php" method="post"
 enctype="multipart/form-data">
 <label for="file">Filename:</label>
 <input type="file" name="file" id="file"><br>
 <input type="submit" name="submit" value="Submit">
 </form>

不知道为什么,我试图上传文件,但点击上传后它一直显示无效文件。我不知道怎么了?

4

2 回答 2

0

一个常见的缺陷是表单中缺少 enctype 属性。如果你想上传一个文件,你应该像下面这样。

<form method="POST" enctype="multipart/form-data">
于 2013-01-29T13:06:14.323 回答
0

也许添加一些调试输出,例如: echo $extension; 检查您是否获得了文件名的正确部分。print_r($_FILES) 也可能有所帮助。如果这仍然无济于事,请尝试将 if 语句的每个部分放在单独的“if”中,这样​​您就可以检查哪个失败了。

于 2013-01-29T13:07:28.900 回答