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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/php/139554.html

猜你在找的PHP相关文章