由于项目需要,需要本地服务器接收数据后,再将数据转发到另外一台服务器上,故要用到模拟post请求发送数据,当然数据中也包含文件流。
curl是php比较常用的方式之一,一般代码如下:
$params1 = "test";
$params2 = "@".$absolute_path;//如果是文件 则参数为"@"+绝对路径
$post_data = array(
'params1' => $params1,
'params2' => $params2,
);
function postData($url, $data){
$ch = curl_init();
$timeout = 300;
curl_setopt($ch, CURLOPT_URL, $url); //请求地址
//curl_setopt($ch, CURLOPT_REFERER, $ip);//构造来路
curl_setopt($ch, CURLOPT_POST, true); //post请求
curl_setopt($ch, CURLOPT_BINARYTRANSFER,true);//二进制流
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //数据
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //当CURLOPT_RETURNTRANSFER设置为1时 $head 有请求的返回值
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //设置请求超时时间
$handles = curl_exec($ch);
curl_close($ch);
ret