"@E:/png.png");//文件路径,前面要加@,表明是文件上传. $curl = curl_init("http://localhost/a.php"/> "@E:/png.png");//文件路径,前面要加@,表明是文件上传. $curl = curl_init("http://localhost/a.php">
PHP使用CURL上传文件
用curl上传文件的话很方便,什么header,post串都不用生成了,用fsockopen要写一堆
curl:
$file = array("upimg"=>"@E:/png.png");//文件路径,前面要加@,表明是文件上传. $curl = curl_init("http://localhost/a.php"); curl_setopt($curl,CURLOPT_POST,true); curl_setopt($curl,CURLOPT_POSTFIELDS,$file); curl_exec($curl);
$uploadFile = file_get_contents("E:/png.png"); $boundary = md5(time()); $postStr .="--".$boundary."\r\n";//边界开始,注意默认比header定义的boundary多两个'-' $postStr .="Content-Disposition: form-data; name=\"upimg\"; filename=\"E:/png.png\"\r\n"; $postStr .="Content-Type: image/png\r\n\r\n"; $postStr .=$uploadFile."\r\n"; $postStr .="--".$boundary."\r\n";//边界结束 fwrite($fp,"POST /a.php HTTP/1.0\r\n"); fwrite($fp,"Content-Type: multipart/form-data; boundary=".$boundary."\r\n"); fwrite($fp,"Content-length:".strlen($postStr)."\r\n\r\n"); fwrite($fp,$postStr); while (!feof($fp)){ echo fgets($fp, 128); } fclose($fp); print_r($_FILES);