Web浏览器对可以发布的数据(字符)数量有限制,以防止攻击。在IE中,它大约有2000个字符,在Chrome中大约有65,000个字符。
我正在尝试发布一个表单,该表单的字段包含 200,000+ 个字符(准确地说是 json 强大的向量)。
这比任何浏览器都允许的要多得多,因此接收帖子的PHP页面只能看到大约40%的数据。
我能想到解决这个问题的唯一方法是流式传输表单帖子,以便 PHP 可以增量接收它。
这是否可能与$raw = file_get_contents('php://input');例如,与"application/octet-stream"的形式编码类型结合使用?
非常感谢,塞布
如果你在 Linux 或类似版本下使用 PHP,你可以使用 .htaccess
来控制这些,如下所示:
#set max post size
php_value post_max_size 50M
希望这将允许您发送更多数据,而不是弄乱编码。
请求的 url 部分(GET 和 POST)可以受到 浏览器和服务器 - 通常安全大小为 2KB,因为有 几乎没有使用较小限制的浏览器或服务器。
请求正文 (POST) 通常*受服务器上的服务器限制 字节大小基础,以防止某种类型的 DoS 攻击(请注意 这意味着字符转义可以增加正文的字节大小)。 最常见的服务器设置是10MB,尽管所有流行的服务器 允许通过设置文件或面板增加或减少此值。
您将网址长度限制与上传限制混淆了。通过 URL 传递的数据是一个GET
查询,并且每个浏览器都有长度限制。
如果需要传递任意"大型"数据,则可以使用 POST,它没有任意客户端长度限制,仅受服务器配置的限制。
好的 - 找到了问题所在。数据在到达 Apache 之前通过 WAF 过滤器传输。这是正在运行的mod_security,其后置限制为 64Kb。