PHP post的最大大小是多少?

6

一个POST请求的大小是否有限制?我有一个很大的过程,我想要将其输出缓存起来。基本上,由于特定项目的增长,查询数量和响应时间变得无法控制,我想要将一个大型HTML表格存储在缓存中。

现在,我正在发送由ajax调用检索到的大量输出,在另一个ajax调用中(在第一个完成后),但是我只收到了一小部分数据。我认为我的ajax函数是正确的,因为存储的输出始终相同(按字符计算)。但是我在缓存中丢失了约90%的输出...


它是可配置的。请参阅php.ini。 - John
可能是重复的问题:PHP:post全局变量的总长度是多少? - Frank Farmer
post_max_size和memory_limit。您的Web服务器也有限制。我相信Nginx默认限制比较保守,而Apache的限制默认为2 GB。 - Frank Farmer
我猜这个时刻传输的大小只有几KB... - Ben Fransen
我认为你最好概述一下导致问题的请求的外观(缓存后)。你问题的第一部分可能会引起误解。 - hakre
3个回答

9

默认情况下,POST方法的最大大小为8 Mb(可以通过在php.ini文件中设置post_max_size来更改)。

"POST请求的大小是否有限制?"

是的,PHP有一个设置:post_max_size


谢谢回复!我不认为这会解决我的问题。我认为输出源只有几KB,而不是多个MB... - Ben Fransen

4

我自己遇到了这个问题,发现从PHP5.3.9开始有一个新的设置可以限制post变量的总数(而不仅仅是大小)。

max_input_vars = 1000

如果您当时使用的是PHP的夜间版或发布候选版本,那么可能存在与您遇到的相同问题。


2
请在您的php.ini文件中查找以下设置。
; Maximum size of POST data that PHP will accept.
; http://php.net/post-max-size
post_max_size = 8M

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M

post_max_size指定POST的最大大小,由于它必须包含在内存中,因此内存限制必须更大。内存将需要包含运行程序和所有堆变量,包括POST。

如果您仅将post_max_size增加到接近或超过内存限制并忘记增加memory_limit,则当内存耗尽时,POST大小将被限制为较低的值。

在本示例中,您可以看到默认设置。


谢谢您的回复,也看到了其他评论。:) +1 - Ben Fransen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接