php服务端数据发送,客户端发送数据流到服务端PHP处理相关的

APP或者Unity3D在做图片上传的时候,一般都是数据流格式,此时数据流传送的时候,enctype是application/x-www-form-urlencoded,PHP可以通过file_get_contents("php://input")获取(除了在enctype="multipart/form-data"情况下是无法接收到流,其他情况下都可以),额,程序代码如下

if ($_POST) {

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

parse_str($data,$d);

file_put_contents("hh.gif", $d['data']);//写到hh.gif中,看看是否正常,不正常表示数据流被破坏

echo 'username:'.$d['username'].'
';

echo 'password:'.$d['password'].'
';

exit;

}

function encode($params) {

$i = 0;

foreach ($params as $k => $v) {

$i++;

$str.= rawurlencode($k) . "=" . rawurlencode($v);

if ($i < count($params))

$str.= "&";

}

return$str;

}

$data = file_get_contents('http://www.baidu.com/img/bdlogo.gif');

$infoary= array("username"=>"aboc","password"=>"aboc",'data'=>$data);

$encodestr= encode($infoary);

$http_entity_body = $encodestr;

$http_entity_type = 'application/x-www-form-urlencoded';

$http_entity_length = strlen($http_entity_body);

$host = $_SERVER['HTTP_HOST'];

$port = 80;

$path = '/3d/?act=add';

$fp = fsockopen($host, $port, $error_no, $error_desc, 30);

if ($fp) {

fputs($fp, "POST {$path} HTTP/1.1\r\n");

fputs($fp, "Host: {$host}\r\n");

fputs($fp, "Content-Type: {$http_entity_type}\r\n");

fputs($fp, "Content-Length: {$http_entity_length}\r\n");

fputs($fp, "Connection: close\r\n\r\n");

fputs($fp, $http_entity_body . "\r\n\r\n");

while (!feof($fp)) {

$d .= fgets($fp, 4096);

}

fclose($fp);

echo $d;

}

rawurlencode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值