PHP post_max_size 覆盖upload_max_filesize

标签 php upload filesize

在我的网站主机中,我已经看到(通过 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 = 20Mupload_max_filesize = 6M,您最多可以上传 3 个文件,每个文件 6M。如果改为 post_max_size = 6Mupload_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/

相关文章:

shell - 包含 K、M、G、T 的总文件大小

php - 获取 Laravel 中不同表中每个 id 的总计数

php - 在 HTML 表中显示带有可变数据的 MySQL 查询结果

android webview 页面在捕获图片并在 android 5+ 中上传后重新加载

php - 使用PHP上传两个文件

php - "Tie"已上传图片至其余部分

linux - 如何在 Linux/Unix 中创建超过 2GB 的文件?

php - filesize() 不显示实际大小

php - 尝试将代理 Bootstrap 模板添加到 Laravel 5.4

php - PHP/MySQL:如何知道更新是否成功? (当发送更新的数据与数据库中已有的数据相同时)