Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于超过1450B的请求,是否在PHP中正确读取POST请求参数?_Php_Http_Http Post - Fatal编程技术网

对于超过1450B的请求,是否在PHP中正确读取POST请求参数?

对于超过1450B的请求,是否在PHP中正确读取POST请求参数?,php,http,http-post,Php,Http,Http Post,我在api.php脚本上收到POST请求。使用此代码显示的内容为红色: $fp = fopen('php://stdin', 'r'); $all = ""; while($line = fgets($fp, 4096)) { $all .= $line; } echo $all; 看起来像这样: ------------V2ymHFg03ehbqgZCaKO6jy Content-Disposition: form-data; name="intro" O ----------

我在api.php脚本上收到POST请求。使用此代码显示的内容为红色:

$fp = fopen('php://stdin', 'r');
$all = "";
while($line = fgets($fp, 4096)) { 
    $all .= $line; 
}
echo $all;
看起来像这样:

------------V2ymHFg03ehbqgZCaKO6jy
Content-Disposition: form-data; name="intro"

O
------------V2ymHFg03ehbqgZCaKO6jy
Content-Disposition: form-data; name="title"

T
------------V2ymHFg03ehbqgZCaKO6jy
Content-Disposition: form-data; name="apiKey"

98d32fdsa
------------V2ymHFg03ehbqgZCaKO6jy
Content-Disposition: form-data; name="method"

/media/add
------------V2ymHFg03ehbqgZCaKO6jy
Content-Disposition: form-data; name="upload_field"; filename="original_filename.png"
Content-Type: image/png


------------V2ymHFg03ehbqgZCaKO6jy--
如您所见,我得到了4个参数,分别是intro、title、apiKey和method,还有一个文件名为original_filename.png,大小为1460字节

不幸的是,我的$\u POST数组是空的。当orginal_filename.png小于1450字节时,奇怪的是$u POST包含所有参数,而stdin为空

我希望能够像普通人一样从$\u POST中读取这些字段


如何从$\u POST中正确读取此POST请求参数?

正如我刚刚在手册中读到的,原始POST数据不适用于enctype=“multipart/form data”,但您也可以尝试使用

$fp = fopen('php://stdin', 'rb');
请注意“b”标志


另外,请确保php.ini中的始终填充\u post\u data=On变量
$\u文件中是否有任何内容

提交的表单中是否有
MAX\u FILE\u SIZE
元素

这里的价值是什么

echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "\n";

??? 您编写了我在问题中提出的第一行源代码。这不是很有帮助…请注意旗帜!我写的不仅仅是r!好的,谢谢,我知道这是我上面代码中的一个错误的修复,好的。我对此表示赞赏,但仍希望找到解决主要问题的办法。亲切的问候!这些参数为16M。在文件中完全没有数据。文件是从上一页的表单上传的还是通过其他方式上传的?如果有表格的话,你能发布相关的来源吗?