PHP文件上传提供成功的错误代码,但不显示图像

时间:2018-06-02 16:49:04

标签: php file-upload

为了清楚起见,我将其分解为易于导航和可读的部分。

问题:

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

背景

我已经在个人网站上工作了一段时间,我正在开发一个后期管理系统。它到目前为止一直很好,但我很快就试图使用$ _FILES上传图片。

我在学校和我的工作中多次做过这种事情,但是我的电脑似乎存在某种问题,或者我有一大笔白痴。

我已经解决了这个问题:

  1. 在php.ini-production中为我正在使用的版本启用文件上传(php 7.1.7)
  2. upload_max_filesizepost_max_size等值更改为100米
  3. 检查了PHP返回的错误代码,返回错误代码0或UPLOAD_ERR_OK
  4. 检查我自己的代码,看看我犯的任何简单错误。我看不到任何问题,但是当您遇到错误时通常就是这种情况。
  5. 我将包含我编写的一个小测试页,并且正在演示该问题:

    text.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测试语句没有触发

    我不会正常问这个问题,但已经过了几个星期,我想完成我的网站。

    此示例代码可以在您自己的计算机上运行,​​如果是这种情况,请不要进行downvote。我正在排除故障的原因。

    感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

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

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