首先,用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 = '你的key';
$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 "创建失败";
}
}