在seeing this recent SuperUser question on the role memory_limit
plays in file upload limits之后,我在这里发布了这个问题。
官方的PHP手册在post_max_size
下声明了以下内容
一般来说,
memory_limit
应该比post_max_size
大。
如果你在某种程度上理解了PHP,什么是memory_limit
,什么是post_max_size
,这个官方的建议完全没有任何意义。PHP是一个与memory_limit
进程内存限制相关的设置,而post_max_size
只关心通过PHP上传到文件系统的项目的最大大小。
现在,人们可以将一个大的数据发送到PHP脚本,并将其存储在PHP内存中。但几乎没有人会这么做。当绝大多数文件都是PHP脚本的POSTed时,该文件通过PHP流式传输并保存到文件系统中。
那么为什么这是“一般意义上的…”呢?给出建议了吗?或者,在经过多年的20+开发之后,我是不是完全疯了,不知何故,我能够在不让memory_limit
超过post_max_size
的情况下将大量文件上传到LAMP堆栈应用程序
如果找到了a similar question here和this answer以及as this other answer,这就证实了我所说的话。见鬼,here is another answer to another question触及了答案明确表示“不”的主题。
那么,为什么官方的PHP手册声明memory_limit
与post_max_size
有关呢?
是的,我知道在某些情况下,“一般说来,…”建议是有效的,但我发现有多少在线资源(见上)与PHP手册中所说的相矛盾。也许“一般”的建议应该针对不同的用例做出更具体的建议?
发布于 2018-08-24 01:58:22
因为如果您使用$_POST
数组,它需要存储在内存中,特别是对于大型POST
数据。因此,它需要放入内存。
您还可以使用流包装器php://input
而不是$_POST
来减少内存使用。
https://stackoverflow.com/questions/51991616
复制相似问题