PHP实现微信小程序人脸识别刷脸登录功能

举报
lxw1844912514 发表于 2022/03/28 00:21:58 2022/03/28
【摘要】 首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片 然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器 public function login(){    // 上传文件路径   &n...

首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片

然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器

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'];      }     }    }   }
  

 

然后进行前台设计

<camera device-position="{{device?'back':'front'}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera>     <view class="weui-cells__title" >开关</view>     <view class="weui-cells weui-cells_after-title">       <view class="weui-cell weui-cell_switch">         <view class="weui-cell__bd">切换摄像头</view>         <view class="weui-cell__ft" >           <switch bindtap="devicePosition" />         </view>       </view>     </view> <button type="primary" bindtap="takePhoto">刷脸登录</button>
  

 

我们还可以控制相机的前后镜头

devicePosition() { this.setData({  device: !this.data.device, }) console.log("当前相机摄像头为:"this.data.device ? "后置" : "前置"); camera() {  let { ctx, type, startRecord } = this.data; }, data: {  src: null, },
  

 

在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: "确定"       })       }      })     }    })   },
  

刷脸登录就成功了

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100029543

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。