php - file_get_contents ("php://input") 如果 POST 正文超过约 16 000 个字符,则为空

标签 php

我有一个应用程序,可以向 Apache 共享主机发送相对较大的 POST 请求。

在服务器上,有一个 .php 文件,其中包含

file_get_contents("php://input")

这应该读取 POST 原始正文。只要 POST 正文长度小于 16000 个字符,它就可以工作。如果有更多,上面的代码返回一个空字符串。

我希望归还整个尸体,无论其长度如何。

  • 默认情况下,服务器的 php.ini 中有一个 post_max_size = 64M 设置。自己手动设置并不能缓解这个问题。

  • 客户端代码始终正常工作。 Content-Length header 也设置正确。

  • 通过 HTML 表单发送 POST 并使用 $_POST['content'] 服务器端访问它的行为方式完全相同。

最佳答案

问题可能出在网络服务器上。 您可以尝试提高网络服务器软件的正文限制。 例如在 Apache 中:

LimitRequestBody 

在 Nginx 中:

client_max_body_size

关于php - file_get_contents ("php://input") 如果 POST 正文超过约 16 000 个字符,则为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57988974/

相关文章:

php - 如何扩展代码点火器 Controller 类?

php - 清算资源

php - 如何制作受控的 "shuffle"订单?

php - 为什么 'php artisan migrate' 命令会创建迁移表以及我打算创建的表?

php - laravel 5.2 将登录 session 数据插入自定义身份验证的数据库

php - 在快完成时开始使用单元测试是否现实?

php - 在使用 Kohana 包装器的 Swift 邮件程序方面需要帮助

php - PHP 循环数组逻辑错误

php - 以编程方式在 WooCommerce 中创建多个优惠券

php - 错误消息未发送到登录页面