Cette fois, je vais vous montrer comment utiliser PHP pour implémenter la reconnaissance faciale et la connexion par reconnaissance faciale pour les mini-programmes WeChat. Quelles sont les précautions pour utiliser PHP pour implémenter la reconnaissance faciale et la connexion par reconnaissance faciale pour WeChat mini. programmes. Voici le combat réel. Jetons un coup d’œil au cas.
Ensuite, nous écrivons l'interface de connexion faciale en arrière-plan pour nous connecter. Nous devons stocker les photos obtenues en prenant des photos sur le serveur
public function login(){ // 上传文件路径 $dir = "./Uploads/temp/"; if(!file_exists($dir)){ mkdir($dir,0777,true); } $upload = new \Think\Upload(); $upload->maxSize = 2048000 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->savepath = ''; $upload->autoSub = false; $upload->rootPath = $dir; // 设置附件上传根目录 // 上传单个文件 $info = $upload->uploadOne($_FILES['file']); if(!$info) {// 上传错误提示错误信息 echo json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE); }else{// 上传成功 获取上传文件信息 $file = $dir . $info['savepath'].$info['savename']; $image = base64_encode(file_get_contents($file)); $client = $this->init_face(); $options['liveness_control'] = 'NORMAL'; $options['max_user_num'] = '1'; $ret = $client->search($image,'BASE64','student',$options); // echo json_encode($ret,JSON_UNESCAPED_UNICODE); // exit; if($ret['error_code']==0){ $user = $ret['result']['user_list'][0]; $no = $user['user_id']; $score = $user['score']; if($score>=95){ $data = M('student')->where("no = '{$no}'")->find(); $data['score'] = $score; // $data['name'] = json_decode($data['name'],true); // $data['sex'] = json_decode($data['sex'],true); echo '识别成功' . json_encode($data,JSON_UNESCAPED_UNICODE); }else{ echo '识别失败' . $data['score']; } } } }
Ensuite, nous concevons la réception
<camera device-position="{{device?'back':'front'}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera> <view class="weui-cellstitle" >开关</view> <view class="weui-cells weui-cells_after-title"> <view class="weui-cell weui-cell_switch"> <view class="weui-cellbd">切换摄像头</view> <view class="weui-cellft" > <switch bindtap="devicePosition" /> </view> </view> </view> <button type="primary" bindtap="takePhoto">刷脸登录</button>
Nous pouvons également contrôler les objectifs avant et arrière de la caméra
devicePosition() { this.setData({ device: !this.data.device, }) console.log("当前相机摄像头为:", this.data.device ? "后置" : "前置"); camera() { let { ctx, type, startRecord } = this.data; }, data: { src: null, },
Appelez l'interface en js
takePhoto() { const ctx = wx.createCameraContext() ctx.takePhoto({ quality: 'high', success: (res) => { this.setData({ src: res.tempImagePath }) console.log(res) wx.uploadFile({ url: '', //仅为示例,非真实的接口地址 filePath: this.data.src, name: 'file', formData: { }, success: function (res) { // var data = res.data // var json = JSON.parse(data) console.log(res) wx.showModal({ title: "提示", content: res.data, showCancel: false, confirmText: "确定" }) } }) } }) },
Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des choses plus intéressantes, veuillez prêter attention aux autres sites Web chinois php Articles connexes !
Lecture recommandée :
Comment utiliser PHP pour empêcher la soumission répétée de formulaires
Analyse des cas d'utilisation de la base de données du framework CodeIgniter
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!