对于超过1450B的请求,是否在PHP中正确读取POST请求参数?
我在api.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 ----------
$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。在文件中完全没有数据。文件是从上一页的表单上传的还是通过其他方式上传的?如果有表格的话,你能发布相关的来源吗?