PHP 的 `post_max_size` 和 `upload_max_filesize` 如何协同工作进行文件上传?

Linda Hamilton
发布: 2024-10-31 00:01:02
原创
389 人浏览过

 How Do PHP's `post_max_size` and `upload_max_filesize` Work Together for File Uploads?

了解 PHP 文件上传大小限制

PHP 配置设置 post_max_size 和 upload_max_filesize 在处理文件上传中起着至关重要的作用。然而,它们的交互可能会令人困惑。

混乱

在提供的示例中,post_max_size 设置为 8Mb,而 upload_max_filesize 设置为 16Mb。从逻辑上讲,人们可能会假设可以上传高达 16Mb 的文件。但是,较小的 post_max_size 限制会覆盖此假设,导致尝试上传大于 8Mb 的文件时出现错误。

限制定义

  • upload_max_filesize : 指定单个上传文件的最大大小。
  • post_max_size: 指定整个 HTTP POST 请求正文的最大大小,其中包括所有正在提交的数据,包括文件。

限制的交互

post_max_size 充当通过 POST 提交的所有文件和其他数据的组合大小的总限制。这意味着即使 upload_max_filesize 允许更大的文件,总体请求大小也必须遵守 post_max_size。

大文件上传解决方案

允许上传文件如果大于 post_max_size,则需要找到一种替代方法来传输文件而不使用 POST。这可能涉及:

  • Multipart/form-data:利用自定义脚本来处理独立于 HTTP 请求大小限制的文件上传。
  • PUT/PATCH HTTP 方法: 使用这些方法通过 REST API 上传大文件。

错误检测

当超​​过 post_max_size 时,$ _POST 和 $_FILES 将为空。但是,$_SERVER['CONTENT_LENGTH'] 将大于 0。需要注意的是,如果没有传输 post 变量或文件,$_SERVER['CONTENT_LENGTH'] 将为 0。

以上是PHP 的 `post_max_size` 和 `upload_max_filesize` 如何协同工作进行文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板