post图片php,PHP模拟表单POST图片

/**

* 功能:模拟表单POST图片

* 参数: $posturl 提交地址

*       $data  提交的其他数据

*       $file  图片绝对路径

*/

function postdata($posturl,$data=array(),$file=''){

$url = parse_url($posturl);

if(!$url) return "couldn't parse url";

if(!isset($url['port'])) $url['port'] = "";

if(!isset($url['query'])) $url['query'] = "";

$boundary = "---------------------------".substr(md5(rand(0,32000)),0,10);

$boundary_2 = "--$boundary";

$content = $encoded = "";

if($data){

while (list($k,$v) = each($data)){

$encoded .= $boundary_2."\r\nContent-Disposition: form-data; name=\"".rawurlencode($k)."\"\r\n\r\n";

$encoded .= rawurlencode($v)."\r\n";

}

}

if($file){

$ext=strrchr($file,".");

$type = "image/jpeg";

switch($ext){

case '.gif': $type = "image/gif";

break;

case '.jpg': $type = "image/jpeg";

break;

case '.png': $type = "image/png";

break;

}

$encoded .= $boundary_2."\r\nContent-Disposition: form-data; name=\"pic\"; filename=\"$file\"\r\nContent-Type: $type\r\n\r\n";

$content = join("", file($file));

$encoded.=$content."\r\n";

}

$encoded .= "\r\n".$boundary_2."--\r\n\r\n";

$length = strlen($encoded);

$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);

if(!$fp) return "Failed to open socket to $url[host]";

fputs($fp, sprintf("POST %s%s%s HTTP/1.0\r\n", $url['path'], $url['query'] ? "?" : "", $url['query']));

fputs($fp, "Host: $url[host]\r\n");

fputs($fp, "Content-type: multipart/form-data; boundary=$boundary\r\n");

fputs($fp, "Content-length: ".$length."\r\n");

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

fputs($fp, $encoded);

$line = fgets($fp,1024);

if (!eregi("^HTTP/1\.. 200", $line)) return null;

$results = "";

$inheader = 1;

while(!feof($fp)){

$line = fgets($fp,1024);

if($inheader && ($line == "\r\n" || $line == "\r\r\n")){

$inheader = 0;

}elseif(!$inheader){

$results .= $line;

}

}

fclose($fp);

return $results;

}

$posturl = 'http://www.phpzu.com/test.php';//post提交地址

$data = array('name'=>'张三','sex'=>1);//提交的其他数据

$file = 'http://imgstatic.baidu.com/img/image/shouye/yiping2.jpg';//图片的绝对路径可以是url地址

postdata("http://www.phpzu.com/a.php",$data,'http://imgstatic.baidu.com/img/image/shouye/yiping2.jpg');

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值