首页 > 解决方案 > PHP文件上传成功错误代码,但没有图像出现

问题描述

为了清楚起见,我将把它分成易于浏览和阅读的部分。

问题:

在我上传文件后,$_FILES 超级全局似乎不包含任何信息。尽管如此,我还是得到了错误代码 0(成功上传),这似乎是矛盾的。

背景:

我已经在个人网站上工作了一段时间,并且正在开发一个帖子管理系统。到目前为止一切都很好,但我在尝试使用 $_FILES 上传图像时遇到了困难。

我在学校和我的工作中多次做过这种事情,但我的电脑似乎出现了某种问题,或者我有一个巨大的白痴中风。

为了解决这个问题,我已经:

  1. 在 php.ini-production 中为我正在使用的版本启用文件上传(php 7.1.7)
  2. 将值更改为upload_max_filesizepost_max_size到 100m
  3. 检查 PHP 返回的错误代码,返回错误代码 0,或UPLOAD_ERR_OK
  4. 检查我自己的代码是否存在我所犯的任何简单错误。我看不到任何内容,但是当您遇到错误时通常会出现这种情况。

我将包含我编写的一个小测试页面,并演示该问题:

文本.php:

    <?php

    if(isset($_POST['submit'])){
        echo $_FILES['a']['error'];
        if(isset($_FILE['a']['tmp_name'])){
            echo "hello";

        }
    }

    ?>

    <form action = "text.php" method = "POST" enctype="multipart/form-data">
        <label for = "a"> Send Image </label>
        <input type = "file" name = "a" id = "a">
        <input type = "submit" name = "submit" value = "Submit">
    </form>

提交表单时,我收到错误代码 0,但 hello 测试语句触发。

标签: phpfile-upload

解决方案


全局数组被命名为$_FILES您正在检查isset($_FILE['a']['tmp_name']

如果您想检查上传的文件,请尝试使用

if (is_uploaded_file($_FILES['a']['tmp_name'])) {
   //file is uploaded
}

推荐阅读