php:// POST请求时输入为空

时间:2013-11-22 15:33:49

标签: php http post multipartform-data

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

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

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

以下是调试器的一些图片。 POST请求:

empty $rawData

PUT与相同的参数:

filled $rawData

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

2 个答案:

答案 0 :(得分:7)

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)。

答案 1 :(得分:-1)

你能试试吗

var_dump($HTTP_RAW_POST_DATA);

来源:

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

=== 编辑 - 这不会显示'multipart / form-data'的原始发布数据