在我的网站主机中,我已经看到(通过 phpinfo)
- post_max_size = 8Mb
- upload_max_filesize = 16Mb
这让我想到我应该能够上传最大 16Mb 的文件。 但是,当我通过 post 方法(正常)执行此操作时,post_max_size 接管并声明我发送了太多。
什么方法可以发送16Mb大的文件? GET - PUT - 其他?
希望有人可以为我澄清这一点。
西蒙
最佳答案
upload_max_filesize
是任何单个文件的限制。
post_max_size
是整个请求体的限制,可以包含多个文件。
鉴于 post_max_size = 20M
和 upload_max_filesize = 6M
,您最多可以上传 3 个文件,每个文件 6M。如果改为 post_max_size = 6M
和 upload_max_filesize = 20M
那么您只能在达到 post_max_size 之前上传一个 6M 文件。 upload_max_size
> post_max_size
没有帮助。
如何识别超过 post_max_size
的方法并不明显。 $_POST
和 $_FILES
将为空,但 $_SERVER['CONTENT_LENGTH']
将 > 0。如果客户端没有上传任何帖子变量或文件,则 $_SERVER['CONTENT_LENGTH']
将为 0。
关于PHP post_max_size 覆盖upload_max_filesize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754133/