为了账号安全,请及时绑定邮箱和手机立即绑定

如果 POST 正文超过 ~16 000 个字符,则 file_get_contents

如果 POST 正文超过 ~16 000 个字符,则 file_get_contents

PHP
千巷猫影 2022-01-14 17:15:50
我有一个向 Apache 共享主机发送相对较大的 POST 请求的应用程序。在服务器上,有一个.php文件file_get_contents("php://input")那应该读取 POST 原始正文。只要 POST 正文的长度小于 ~16000 个字符,它就可以工作。如果还有更多,上面的代码会返回一个空字符串。我想让整个身体归还,不管它的长度。默认情况下,据说post_max_size = 64M服务器的php.ini. 自己手动设置并不能缓解问题。客户端代码始终正常工作。Content-Length 标头也设置正确。通过 HTML 表单发送 POST 并使用 $_POST['content'] 服务器端访问它的行为方式完全相同。
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

问题可能与 Web 服务器有关。您可以尝试提高 Web 服务器软件的正文限制。例如在 Apache 中:

LimitRequestBody

在 Nginx 中:

client_max_body_size


查看完整回答
反对 回复 2022-01-14
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

尝试在脚本之上一直添加:


<?php


error_reporting(E_ALL);

ini_set('display_errors', 1);

由于错误被禁用,您很可能会收到一个看不到的错误。


您也可以尝试--with-curlwrapper从 PHP 配置中删除并重新构建它。 file_get_contents 返回空字符串


查看完整回答
反对 回复 2022-01-14
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

解决方案是创建一个以tmp公共根目录命名的空文件夹。在大多数情况下,它很可能会自动创建(如果需要的话),但是我相信这家托管公司的配置存在缺陷。


查看完整回答
反对 回复 2022-01-14
  • 3 回答
  • 0 关注
  • 199 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号