由于使用 multipart/form-data
出现问题,我不得不像处理PUT请求一样手动解析POST请求的参数。 为此,我使用了以下代码:
$rawData = file_get_contents('php://input');
我发现php://input
对于POST请求总是为空的,至少对于php-fpm
SAPI。
下面是调试器中的一些图片。POST请求:
使用相同参数的PUT请求:
有没有一种方法可以获取原始的POST请求体?提前感谢。
由于使用 multipart/form-data
出现问题,我不得不像处理PUT请求一样手动解析POST请求的参数。 为此,我使用了以下代码:
$rawData = file_get_contents('php://input');
我发现php://input
对于POST请求总是为空的,至少对于php-fpm
SAPI。
下面是调试器中的一些图片。POST请求:
使用相同参数的PUT请求:
有没有一种方法可以获取原始的POST请求体?提前感谢。
enctype="multipart/form-data"
中不提供 $HTTP_RAW_POST_DATA
(解释请参考这里:http://www.php.net/manual/en/wrappers.php.php 和 http://www.php.net/manual/en/ini.core.php#ini.always-populate-raw-post-data)。建议查看以下已有问题的答案:php http request content raw data enctype=multipart/form-data 和 userland multipart/form-data handler。php.ini
指令 enable_post_data_reading
来禁用 PHP 消耗原始数据(因此处理它),但要注意,$_POST
和 $_FILES
将不会被填充(请参考 Vitaly Chirkov 的回答)。可以试试吗?
var_dump($HTTP_RAW_POST_DATA);
来源:
http://php.net/manual/en/reserved.variables.httprawpostdata.php
=== 编辑 - 这将不会显示'multipart/form-data'的原始帖子数据
enctype="multipart/form-data"
表单一起使用 ;) - STT LCU