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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...