我,一个PHP的新手,昨天我学习了数组,我的老板让我写了一个PHP表单,我在W3学校找到了一个并最终得到了
<html>
<body>
<form action="upload_file.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>
</body>
</html>
<?php
$allowedEXTs = array("jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end ($temp);
if ((($_FILES["file"] ["type"] == "image/jpeg")
|| ($_FILES ["file"] ["type"] == "image/jpg")
|| ($_FILES ["file"] ["type"] == "image/png"))
&& ($_FILES ["file"] ["size"] < 10240)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"] ["error"] > 0)
{
echo "Error: " . $_Files["file"] ["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES ["file"] ["name"] . "<br>";
echo "Type: " . $_FILES ["file"] ["name"] . "<br>";
echo "Size: " . $_FILES ["file"] ["size"] / 10240 . " kB<br>";
echo "Stored in:" . $_FILES ["file"] ["tmp_name"];
}
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES ["file"] ["name"] . "already exists.";
}
else
{
move_uploaded_files ($_FILES ["file"]["tmp_name"], "upload/" . $_FILES ["file"] ["name"]);
}
}
else
{
echo "Invalid file";
}
?>
我基本上不知道为什么会抛出“警告:in_array()期望参数2是数组,在”错误中给出null,任何人都可以伸出援助之手吗?
答案 0 :(得分:3)
$allowedEXTs = array("jpeg", "jpg", "png");
这样声明,
&& in_array($extension, $allowedExts))
这样称呼,
您已使用“EXTs”声明并将其称为“Exts” ... 因此错误。
答案 1 :(得分:1)
使用
定义数组 $allowedEXTs = array("jpeg", "jpg", "png");
然后用
调用它&& in_array($extension, $allowedExts))
每次调用变量时,请确保大小写相同。
与此行相同,应为$_FILES
:
echo "Error: " . $_Files["file"] ["error"] . "<br>";
答案 2 :(得分:0)
使用$ allowedEXT声明数组,但在if语句中拼写为小。