当前位置:网站首页>PHP实现微信小程序人脸识别刷脸登录功能
PHP实现微信小程序人脸识别刷脸登录功能
2022-07-07 14:07:00 【全栈程序员站长】
首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片
然后我们在后台写刷脸登陆的接口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: "确定"
})
}
})
}
})
},刷脸登录就成功了
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113179.html原文链接:https://javaforall.cn
边栏推荐
- hellogolang
- Unity3d click events added to 3D objects in the scene
- Apache Doris just "graduated": why should we pay attention to this kind of SQL data warehouse?
- 2022第四届中国(济南)国际智慧养老产业展览会,山东老博会
- Three. JS introductory learning notes 13: animation learning
- hellogolang
- Shader_ Animation sequence frame
- Use moviepy Editor clips videos and intercepts video clips in batches
- Aerospace Hongtu information won the bid for the database system research and development project of a unit in Urumqi
- MySQL数据库基本操作-DQL-基本查询
猜你喜欢

Numpy --- basic learning notes

Apache Doris just "graduated": why should we pay attention to this kind of SQL data warehouse?

喜讯!科蓝SUNDB数据库与鸿数科技隐私数据保护管理软件完成兼容性适配

How does geojson data merge the boundaries of regions?

Ue4/ue5 multi thread development attachment plug-in download address

SPI master rx time out中断

Step by step monitoring platform ZABBIX

L'application à l'échelle de la normalisation mature des produits ai des compagnies maritimes, cimc, leader mondial de l'intelligence artificielle portuaire et maritime / intelligence artificielle des

Three. JS introductory learning notes 04: external model import - no material obj model

Three. JS introductory learning notes 11:three JS group composite object
随机推荐
Limit of total fields [1000] in index has been exceeded
SPI master RX time out interrupt
asyncio 概念和用法
SPI master rx time out中断
Three. Introduction to JS learning notes 17: mouse control of 3D model rotation of JSON file
Vs tool word highlight with margin
Virtual memory, physical memory /ram what
Three. JS introductory learning notes 00: coordinate system, camera (temporarily understood)
What else can an ordinary person do besides working in a factory to make money?
Rongyun won the 2022 China Xinchuang digital office portal excellence product award!
Eye of depth (VI) -- inverse of matrix (attachment: some ideas of logistic model)
Mysql database basic operation DQL basic query
hellogolang
Shandong old age Expo, 2022 China smart elderly care exhibition, smart elderly care and aging technology exhibition
What are compiled languages and interpreted languages?
Xcode Revoke certificate
用手机在通达信上开户靠谱吗?这样炒股有没有什么安全隐患
Three. JS introductory learning notes 18: how to export JSON files with Blender
山东老博会,2022中国智慧养老展会,智能化养老、适老科技展
Bidding announcement: 2022 Yunnan Unicom gbase database maintenance public comparison and selection project (second) comparison and selection announcement