在微信小程序加入百度人脸识别登陆系统,简直是一步一坑。在网上查找了不少文章,经过几天的连续奋战,终于基本实现了这个功能。或许还有不少BUG,但是已经能完成我想要的功能了。在此贴出前后端完整代码。并对每条语句详细说明下。相信对自己以后做类似程序会有所帮助吧。
先上大家最关心的后台PHP代码吧。这个才是重点。。。前台微信小程序端其实很简单了。
首先需要进入百度人脸库下载PHP ,只需要以下SDK目录结构的文件就行了。
PHP后端代码:(我创建了两个PHP页面)
A.PHP 负责图片上传及图片识别
<?php
//百度人脸入库
/**第一个坑: 注释不能写在“<?php前面或者在<?php前面留空行。不是在小程序端会原样输出,,这样就无法正确读取您想要的数据了” **/
$user_id = $_POST['user_id']; //小程序端传入的用户名
date_default_timezone_set("Asia/Shanghai"); //设置时区
$code = $_FILES['file'];//获取小程序传来的图片
if(is_uploaded_file($_FILES['file']['tmp_name'])) {
//把文件转存到你希望的目录
$uploaded_file=$_FILES['file']['tmp_name'];
//我们给每个用户动态的创建一个文件夹$user_path=$_SERVER['DOCUMENT_ROOT']."uploadphoto/hwphoto/userface";
//判断该用户文件夹是否已经有这个文件夹
if(!file_exists($user_path)) {
mkdir($user_path);
}
//上传上来的文件名
$file_true_name=$_FILES['file']['name'];
//文件需要保存的本地路径
$move_to_file=$user_path."/".date("Y-m-d")."-".uniqid().substr($file_true_name,strrpos($file_true_name,"."));
//保存文件
move_uploaded_file($uploaded_file,iconv("utf-8","gb2312",$move_to_file));
}
//需要定义一个类,名字随意
class post{
//入口函数
private function init_face(){
$APP_ID = 'XXXXX';
$API_KEY = 'XXXXXXX';
$SECRET_KEY = 'XXXXXXXXXXXXX';
require_once '/www/wwwroot/WWW.XXX.COM/AipFace.php';
return new \AipFace($APP_ID,$API_KEY,$SECRET_KEY);
}
//验证照片
public function facevalid(){
//这里需要把类以外的变量定义为全局变量,不是在类里的函数根本找不到“第二坑”
global $move_to_file;
global $user_id;
//定义这个变量就是填坑的意思了,其实不用定义这个变量了
$userId ="$user_id";
$file = "$move_to_file"; //照片服务器路径
if(!file_exists($file)){
die('文件不存在');
}
//获取上传的图片并转换成64位的,百度人脸识别

这篇博客记录了如何在微信小程序中集成百度人脸识别系统,实现登陆功能。博主分享了前后端的完整代码,包括PHP后端的图片上传、识别以及数据库管理,以及微信小程序端的JS、WXML和WXSS代码。虽然过程中遇到了诸多问题,但最终成功实现,并认为这对未来类似项目的开发有参考价值。

3532

被折叠的 条评论
为什么被折叠?



