处理文件上传超过 PHP 的 post_max_size
使用 PHP 处理文件上传时,超过 post_max_size 限制可能会带来挑战。 upload_max_filesize 对于超大文件返回 0 的文件大小,而 post_max_size 可能会导致您的脚本静默失败,且不会出现任何错误消息。
如何检测文件大小限制错误
1。检查超全局变量是否为空:
根据 PHP 文档,如果 post 数据超过 post_max_size,则 $_POST 和 $_FILES 超全局变量将为空。您可以通过将查询参数传递到仅在 $_POST 非空时设置的表单来检测这一点。
if (isset($_GET['processed'])) { // Perform file upload processing } else { // Display blank form }
2.与 $_SERVER['CONTENT_LENGTH'] 比较:
另一种方法是将 CONTENT_LENGTH 标头(不仅包括文件数据还包括多部分序列)与 post_max_size 设置进行比较。
if ($_SERVER['CONTENT_LENGTH'] > ini_get('post_max_size')) { // Error handling for oversized file }
注意:这些方法允许您在不使用 PHP 的情况下检测超大文件产生错误。但是,调整 php.ini 文件中的这些设置非常重要,以防止因大文件而导致潜在的安全问题或性能下降。
以上是如何检测文件上传何时超出 PHP 的 `post_max_size` 限制?的详细内容。更多信息请关注PHP中文网其他相关文章!