<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>百度AI-身份證識別</title>
</head>
<body>
<!--如果僅調取相機,使用: capture="camera"-->
<input type="file" id="image" accept="image/*" />
<script src="https://common.cnblogs.com/scripts/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
var obj = {};
$(document).ready(function () {
getBaiduToken();
$("#image").change(function () {
console.log(obj.BAIDU_TOKEN);
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onload = function (e) {
var base64Image = e.target.result;//或者 reader.result
base64Image = base64Image.split(",")[1];
console.log(base64Image);
parse(base64Image);
};
});
});
//百度識別
function parse(base64Image) {
var url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + obj.BAIDU_TOKEN;
$.ajax({
url: url,
type: "post",
dataType: 'json',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;'
},
data: {
image: base64Image,
id_card_side: 'front'
},
success: function (data) {
console.log(data);
document.write(JSON.stringify(data));
},
error: function (xhr, type, errorThrown) {
alert('識別失敗');
}
});
}
//獲取百度識別token,這里需要后端處理,因為百度獲取access-token的接口不支持跨域
function getBaiduToken() {
var url = "//www.xxx.com/getaccesstoken";
$.ajax({
url: url,
type: "get",
dataType: 'json',
success: function (json) {
obj.BAIDU_TOKEN = json.Data;
}
});
}
</script>
</body>
</html>
只需要修改文中標紅的兩處地方就可以了。
如果你的需求是在識別的時候,還需要保存下來身份證,那么我建議不要在前端去識別了。直接把圖片上傳到后端,再由后端調取百度接口去識別。
