$ _FILES为空时究竟是什么意思?

Mik*_*ore 5 php error-handling upload

我正在研究PHP上传脚本,在测试我的错误检查时,我试图上传一个17MB的TIFF文件.当我这样做时,$ _FILES数组为空.该脚本适用于我需要它做的事情,即上传JPEG文件.我的解决方案是在继续上传脚本之前测试$ _FILES是否为空.

任何人都可以解释为什么尝试上传TIFF时$ _FILES为空?是我的解决方案,检查$ _FILES是否为空,还可以吗?

这与设置有关php.ini吗?

只是为了澄清

$_FILES使用以下内容检查是否为空:

if(empty($_FILES))
{
    die('$_FILES is empty.');
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*hen 7

是的,upload_max_filesize控制TIFF文件最有可能超出的最大上传大小.默认值为2M.您可以测试:

echo ini_get("upload_max_filesize");
Run Code Online (Sandbox Code Playgroud)

编辑:实际上,确切原因更可能是 post_max_size,它始终> = upload_max_filesize:"如果发布数据的大小大于post_max_size,则$ _POST和$ _FILES超全局变为空."