<?php //如果你是win系统并且在D盘有个tt.jpg图片,可以使用下一行代码 //echo (upload('D:/tt.jpg','image/jpeg')); //如果是win系统并且使用相对路径,可以写成下面的(此时代码和图片放在同一目录) //echo (upload(str_replace('\\','/',realpath('cc.jpg')),'image/jpeg')); //如果图片是用户是用户,此程序作为服务端上传的,假如用户上传的图书名是pic,你可以用下面的方式操作 // echo (upload(makePostData($_FILES['pic']['tmp_name'], 'image/jpeg'))); // echo realpath('./cc.jpg'); // echo '</br>'; //如果是linux环境,则直接写上图片地址就可以了 echo upload(makePostData('/data/www/nginx/v.juhe.cn/wzdj/cc.jpg', 'image/jpeg')); function makePostData($filePath, $picType) { if (!function_exists('curl_file_create')) { function curl_file_create($fileName, $mimeType = '', $postName = '') { return "@$fileName;filename=".($postName ?: basename($fileName)).($mimeType ? ";type=$mimeType" : ''); } } $cFile = curl_file_create($filePath, $picType, md5(date('Y-m-d H:i:s')).'.jpg'); return [ 'key' => '换成您自己的key', 'cardType' => '2',//2表示身份证正面,一定要看清楚你的图片到底是什么类型的图片 'pic' => $cFile, ]; } function upload($postData) { $httpInfo = []; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://v.juhe.cn/certificates/query.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果成功,只将结果返回,不自动输出任何内容,如果失败返回false //设置为post请求类型 curl_setopt($ch, CURLOPT_POST, 1); //设置具体的post数据 curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); $response = curl_exec($ch); if ($response === false) { //如果提示你上传图片太小等,可以打印出$cFile这个变量看看具体图片信息 //一般因为路径引起的错误都会提示:couldn't open file "cc.jpg" echo 'cURL Error: '.curl_error($ch); return false; } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpCode != 200) { echo '服务器状态码:'.$httpCode; } $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); curl_close($ch); return $response; }