PHP - 空 $_POST 和 $_FILES - 上传较大文件时
我有一个以下问题,我有一个HTML表单,可以上传一个包含一些额外信息的文件。但它允许上传仅小于10MB的文件。但是当用户尝试上传更大的东西时,$_POST和$_FILES数组都是空的(我预计$_POST将具有一些值,而$_FILES将具有一些值,但将指示存在上传错误)。
有一些问题(空的$ _POST,$ _FILES)这样的问题,但我没有找到任何解决方案,也没有解释它。
HTML 表单:
<form enctype="multipart/form-data" method="post" action="upload.php">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input type="file" name="image" />
</p>
<p>
<input type="text" name="other_field" />
</p>
</form>
上传.php
print_r($_POST); // array()
print_r($_FILES); // array()
exit;
如果文件大小小于10MB(文件大小限制为10MB),并且我不想增加它,我只想在PHP中捕获错误,则它工作正常。
从PHP网站更新(解释/解决方案)
从PHP网站(我错过了这一部分):http://us.php.net/manual/en/ini.core.php#ini.post-max-size
设置允许的帖子数据的最大大小。此设置也会影响文件上传。若要上载大型文件,此值必须大于 upload_max_filesize。如果配置脚本启用了内存限制,则memory_limit也会影响文件上载。一般来说,memory_limit应大于post_max_size。使用整数时,该值以字节为单位进行度量。也可以使用本常见问题解答中所述的速记符号。如果帖子数据的大小大于 post_max_size,则 $_POST 和 $_FILES 超级全局为空。这可以通过各种方式进行跟踪,例如,通过将 $_GET 变量传递给处理数据的脚本,即 ,然后检查是否设置了 $_GET['processed']。