微信小程式——(檢測人臉並上傳)
阿新 • • 發佈:2018-12-29
首先,用thinkphp框架在控制器中寫一個uploud()方法:
//上傳檔案 public function upload(){ $upload = new \Think\Upload();// 例項化上傳類 $upload->maxSize = 3145728 ;// 設定附件上傳大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳型別 $upload->rootPath = './Uploads/'; // 設定附件上傳根目錄 $upload->savePath = ''; // 設定附件上傳(子)目錄 //上傳檔案 $info = $upload->uploadOne($_FILES['file']); if(!$info) {// 上傳錯誤提示錯誤資訊 return $this->ajaxReturn(array('error'=>true,'msg'=>$upload->getError())); }else{// 上傳成功 獲取上傳檔案資訊 return $this->ajaxReturn(array('error'=>false,'msg'=>$info['savepath'].$info['savename'])); } }
在微信小程式中的.js檔案中寫上介面。
下面是檢測人臉的程式碼:
在php檔案中寫sdk()方法:
public function sdk(){ $file='./Uploads/3.jpg'; if(!file_exists($file)){ die('檔案不存在'); } $dir=APP_PATH . '/face-sdk/'; require_once $dir . 'AipFace.php'; // 你的 APPID AK SK $APP_ID = '你的id'; $API_KEY = '你的ak'; $SECRET_KEY = '你的sk'; $client=new \AipFace($APP_ID,$API_KEY,$SECRET_KEY); $image=file_get_contents($file); $image=base64_encode($image); // echo $image; // exit; $imageType="BASE64"; // 如果有可選引數 $options = array(); // $options["face_field"] = "age"; $options["max_face_num"] = 10; // $options["face_type"] = "LIVE"; $ret=$client->detect($image,$imageType,$options); print_r($ret); $result=$ret['result']; $list=$result['face_list']; $face_num=$result['face_num']; // echo $face_num; foreach ($list as $key => $value) { $face_probability =$value['face_probability']; //旋轉角為90度 $yaw=$value['angle']['yaw']; // print_r($yaw); $pitch=$value['angle']['pitch']; // print_r($pitch); $roll=$value['angle']['roll']; } if($face_num===1 && $face_probability===1 && $yaw<20 && $pitch<20 && $roll<20){ $userid=guid(); $userid=ltrim($userid,'{'); $userid=rtrim($userid,'}'); $userid=str_replace('-','_',$userid); $groupid='face_01'; // echo $userid; $rett=$client->addUser($image,$imageType,$groupid,$userid); }else{ echo '照片不符合要求'; } if($ret){ echo '建立成功'; }else{ echo "建立失敗"; } }