【问题标题】:php://input is empty on POST requestphp://input 在 POST 请求中为空
【发布时间】:2013-11-22 15:33:49
【问题描述】:

multipart/form-data 的问题迫使我手动解析 POST 请求的参数,就像我已经为 PUT 请求所做的那样。为此,我使用了以下代码:

$rawData = file_get_contents('php://input');

但我认为php://input 对于 POST 总是为空的,至少对于 php-fpm SAPI。

这是来自调试器的一些图片。 POST 请求:

PUT 具有相同的参数:

有没有办法获取原始 POST 请求正文?提前致谢。

【问题讨论】:

标签: php http post multipartform-data


【解决方案1】:

PHP 5.4 之前 $HTTP_RAW_POST_DATA 不适用于enctype="multipart/form-data"(某些SAPI 实现除外),此处解释:

我建议你看一下现有问题的几个答案:

从 PHP 5.4+ 开始,您可以使用 php.ini 指令 enable_post_data_reading 来禁用 PHP 使用原始数据(因此对其进行处理),请注意 $_POST$_FILES 不会但不会被填充(请参阅Vitaly Chirkov answer)。

【讨论】:

    【解决方案2】:

    你可以试试

    var_dump($HTTP_RAW_POST_DATA);
    

    来源:

    http://php.net/manual/en/reserved.variables.httprawpostdata.php
    

    === 编辑 - 这不会显示“multipart/form-data”的原始帖子数据

    【讨论】:

    猜你喜欢
    • 2016-10-07
    • 2020-07-16
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多