微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php的memory_limit,upload_max_filesize和post_max_filesize之间的关系

底线:
我需要关心设置post_max_filesize>> memory_limit的?

细节:
This answer建议上传文件不需要适应PHP的memory_limit. php docs表明整个帖子应该符合PHP的内存限制.

我发现文档令人惊讶,我希望有人可以详细说明.例如,采取以下PHP配置:

; config A
memory_limit = 50M
upload_max_filesize = 100M
post_max_filesize = 1000M
max_file_uploads = 10

; config B
memory_limit = 50M
upload_max_filesize = 10M
post_max_filesize = 1000M
max_file_uploads = 100

有了这些配置,我希望能够:
>将10x100mb文件上传到服务器A,>和100x10mb文件到服务器B.我也希望:>使用上载到服务器A的10个文件中的任何一个一个问题(100M的文件在50M包…)使用上载到服务器B的100个文件中的任何一个可以使用(10< 50).在尝试使用较少圆形但相当相关的数字时,我发现这些期望是正确的. 这个经验会导致我说“通常memory_limit应该大于upload_max_filesize”;相反,PHP docs说:

generally speaking,memory_limit should be larger than post_max_size.

为什么会发生什么呢?

当我的PHP代码执行时,我没有看到所有发布的文件都在内存中的证据.在我看来,我所拥有的只是一个$_FILES数组的路径,专门在磁盘上找到的文件.在我能反思环境的能力之前,PHP是否在某个时候把整个文章放在内存中?我需要关心设置post_max_filesize>> memory_limit的?

在旁边:
违反手册的规则并不会导致服务器严重破坏(w / PHP5.3 apache2.2 debian 6).

PHP将接受比upload_max_filesize小的上传文件,并且一起少于post_max_size字节.关于memory_limit的PHP文档是错误的,不需要保存发布的文件内容.

以下配置与Apache2模块和CGI兼容,并且接受小于1G的文件.

upload_max_filesize = 1G
 post_max_size = 1G
 memory_limit = 32M

原文地址:https://www.jb51.cc/php/139554.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐