【问题标题】:PHP Upload form giving out errorsPHP上传表单给出错误
【发布时间】:2013-10-11 09:21:27
【问题描述】:

我是个 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”那个错误,有人可以伸出援助之手吗?

【问题讨论】:

  • in in_array() 不是一个数组,所以你会得到那个错误。
  • 到目前为止有效,然后出现此错误致命错误:调用未定义的函数 move_uploaded_files() in
  • 那是因为函数是move_uploaded_file()
  • 我现在已经改变了,它告诉我文件在那里,但是 FTP 出于某种原因没有显示它?有什么想法吗?
  • 存储在:/tmp/phphDNNWISL8549 这就是它所说的位置,但对于我的生活我找不到那个

标签: php html forms file-upload


【解决方案1】:
$allowedEXTs = array("jpeg", "jpg", "png");

这样声明,

&& in_array($extension, $allowedExts))

这样称呼,

您已使用 "EXTs" 声明它并将其称为 "Exts"... 因此出现错误。

【讨论】:

    【解决方案2】:

    你用

    定义数组
     $allowedEXTs = array("jpeg", "jpg", "png");
    

    然后用

    调用它
    && in_array($extension, $allowedExts))
    

    确保每次调用变量时大小写相同。


    这行应该是$_FILES:

    echo "Error: " . $_Files["file"] ["error"] . "<br>";
    

    【讨论】:

      【解决方案3】:

      您使用 $allowedEXTs 声明数组,但在 if 语句中拼写为小。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-19
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        • 2014-11-22
        相关资源
        最近更新 更多