【问题标题】:Debugging a PHP file uploader调试 PHP 文件上传器
【发布时间】:2013-01-21 04:20:27
【问题描述】:

我在测试站点上制作文件上传表单时遇到了问题。使用的教程:

在第一种情况下,在创建表单和 PHP 文件后,它会说它没有给出任何理由就无法上传文件(根据给出的代码,这不足为奇)。然后我尝试使用第二个教程重做它,即使在我修改了代码之后它也给了我更多信息(一个有效的文件还没有上传)所以它在那个 IF 门检查的唯一事情就是大小是否太大。

我搜索了一会儿,发现有人建议转储$_FILES,它给出了一个空数组。其他人建议回显$_FILES['userfile']['error'],但没有提供任何信息。

所以我检查以确保表单具有正确的编码类型(确实如此)。然后我从 cpanel 检查了 PHP 信息。上传文件已启用,最大大小为 2M(我尝试上传的文件小于此大小)。

我不知道下一步该去哪里解决这个问题。任何帮助将不胜感激。

【问题讨论】:

    标签: php forms file debugging upload


    【解决方案1】:

    在您的脚本顶部打开错误报告,从该列表中选择适合您需要的:

    <?php
    
    // Turn off all error reporting
    error_reporting(0);
    
    // Report simple running errors
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    
    // Reporting E_NOTICE can be good too (to report uninitialized
    // variables or catch variable name misspellings ...)
    error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
    
    // Report all errors except E_NOTICE
    // This is the default value set in php.ini
    error_reporting(E_ALL ^ E_NOTICE);
    
    // Report all PHP errors (see changelog)
    error_reporting(E_ALL);
    
    // Report all PHP errors
    error_reporting(-1);
    
    // Same as error_reporting(E_ALL);
    ini_set('error_reporting', E_ALL);
    
    ?>
    

    还要检查服务器上的错误日志是否有错误。 :) 这是解决大多数问题的最佳方法。

    【讨论】:

      【解决方案2】:

      如果更改上述任何参数似乎没有任何区别,则可能是某处的 html 表单包含名称 MAX_FILE_SIZE 作为隐藏字段。

      &lt;input type="hidden" name="MAX_FILE_SIZE" value="10000000"&gt;

      在上面的示例中,任何超过 10MB 的文件都不会上传。

      【讨论】:

        猜你喜欢
        • 2012-04-26
        • 2013-06-04
        • 2010-10-24
        • 2010-10-12
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 1970-01-01
        • 2017-06-02
        相关资源
        最近更新 更多