php文件上传使用示例(不工作)

时间:2014-08-25 07:31:42

标签: php html file-upload

我正在尝试学习php文件上传。我玩w3school示例,我的脚本不懂变量文件:

<form method="post" action="script.php" >
<table class="usertable">
        <tr>
            <td><input id="file_upload" name="file" type="file" /></td>
        </tr>
    </table>
</form>

和php脚本(来自w3school):

$allowedExts = array("gif", "jpeg", "jpg", "png");
 $temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

 if ((($_FILES["file"]["type"] == "image/gif")
 || ($_FILES["file"]["type"] == "image/jpeg")
 || ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
 || ($_FILES["file"]["type"] == "image/png"))
 && ($_FILES["file"]["size"] < 20000)
 && 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>";
     if (file_exists("upload/" . $_FILES["file"]["name"])) {
       echo $_FILES["file"]["name"] . " already exists. ";
     } else {
       move_uploaded_file($_FILES["file"]["tmp_name"],
       "upload/" . $_FILES["file"]["name"]);
       echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
     }
   }
 } else {
   echo "Invalid file";
 }

当脚本运行时,他返回相同的错误:注意:Undefined index: file in。但是,如果我理解变量'file'是输入字段名称?

1 个答案:

答案 0 :(得分:5)

您必须使用 enctype 上传文件

<form method="post" action="script.php" enctype="multipart/form-data">