【问题标题】:max size of a php post?php帖子的最大大小?
【发布时间】:2011-10-03 17:26:15
【问题描述】:

POST 请求是否有大小限制?我有一个大程序要缓存其输出。基本上我想在缓存中存储一​​个 lare html 表,因为特定项目的增长、查询的数量以及响应时间已经失控。

现在我在另一个 ajax 调用中(在第一个调用完成后)发送由 ajax 调用检索的大输出,但我只得到一小部分数据。我认为我的 ajaxfunction 是正确的,因为存储的输出总是相同的(以字符为单位)。但是我在缓存中丢失了大约 90% 的输出......

【问题讨论】:

  • 它是可配置的。请参阅 php.ini。
  • post_max_size 和 memory_limit。您的网络服务器也有限制。我相信 nginx 默认是一个相当保守的限制,而 apache 的限制默认是 2 gigs。
  • 我猜此时传输的大小只有几KB...
  • 我认为您应该更好地概述请求是如何导致问题的(缓存后)。您问题的第一部分可能具有误导性。

标签: php post


【解决方案1】:

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

max_input_vars = 1000

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

【讨论】:

    【解决方案2】:

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

    “会不会是 POST 请求有大小限制?”

    是的,有一个 PHP 设置:post_max_size

    【讨论】:

    • 感谢您的回复!我认为这不会解决我的问题。我认为输出源只有几 KB,而不是多个 MB ......
    【解决方案3】:

    在您的 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 大小将被限制为较低的值。

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

    【讨论】:

    • 也感谢您的回复,请参阅其他评论.. :) +!虽然
    猜你喜欢
    • 2015-12-03
    • 2011-09-02
    • 2022-12-19
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多