(php二进制转图片)(php获取图片二进制文件流)

方法一,$_POST

$_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的数据。

$_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type: application/x-www-form-urlencoded提交的数据。

方法二,使用file_get_contents(“php://input”)

对于未指定 Content-Type 的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。 事实上,用PHP接收POST的任何数据均使用本方法。而不用考虑Content-Type,包括二进制文件流也是可行的。

同$HTTP_RAW_POST_DATA比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。

php://input无法读取Content-Type为multipart/form-data的POST数据,需要设置php.ini中的always_populate_raw_post_data值为On才可以。

php://input读取不到$_GET数据。是因为$_GET数据作为query_path写在http请求头部(header)的PATH字段,而不是写在http请求的body部分。

例如,用户使用某个(客户端应用程序)(json)post给服务器一个文件,文件的内容我们不管它,但是我们要把这个文件完整的保存在服务器上,我们可以使用如下代码:

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

file_put_contents($original, $input); //$original为服务器上的文件

方法三,使用全局变量$GLOBALS[‘HTTP_RAW_POST_DATA']

在$GLOBALS[‘HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。

但$GLOBALS[‘HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,只有在PHP在无法识别的Content-Type的情况下,才会将POST过来的数据原样地填入变量$GLOBALS[‘HTTP_RAW_POST_DATA']中,象Content-Type=application/x-www-form-urlencoded时,该变量是空的。

另外,它同样无法读取Content-Type为multipart/form-data的POST数据,也需要设置php.ini中always_populate_raw_post_data值为On,PHP才会总把POST数据填入变量$http_raw_post_data。

以下是一个小示例,演示了$_POST,$GLOBALS['HTTP_RAW_POST_DATA']和php://input三种不同方式的接收POST数据处理:

a.html

<form name="demo_form" action="post.php" method="post">

<p><label>Name: </label><input type="text" class="input" name="name"></p>

<p><label>Address: </label><input type="text" class="input" name="address"></p>

<p><input type="submit" name="submit" class="btn" value="Submit"></p>

</form>

post.php

<?php

header("Content-type:text/html;charset=utf-8");

echo '$_POST接收:<br/>';

print_r($_POST);

echo '<hr/>';

echo '$GLOBALS[\'HTTP_RAW_POST_DATA\']接收:<br/>';

print_r($GLOBALS['HTTP_RAW_POST_DATA']);

echo '<hr/>';

echo 'php://input接收:<br/>';

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

print_r(urldecode($data));

?>

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者技术瘾君子所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(php二进制转图片)(php获取图片二进制文件流)
本文链接:https://www.51qsb.cn/article/dvjps6.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-08-10
下一篇2023-08-11

你可能还想知道

发表回复

登录后才能评论