SDK的使用
1.进入https://vision.aliyun.com 网站,点击文字识别,然后点击身份证识别的文档。
2.在文档中查看SDK参考。文档一共提供了五种方式:https://help.aliyun.com/document_detail/153132.html?spm=a2c4g.11186623.6.565.2e196c23FbM0GX 可以自行选择语言和方式安装。
然后下面来看大概的实现:
首先是前端页面,引入了bootstrap改善样式。主体是两个部分:表单提交和数据显示。首先是表单提交用两个组件完成两个上传任务。其中bootstrap里的input通过i-back的id将任务存到了外面的input中,然后input中accept属性规定了图片类型。最后用botton提交表单。
前端的第二部分是数据展示,展示上传的图片和提取出来的数据。用if判断是不是为空,不为空则展示后端传来的数据。
后端分为三个部分:实现层,control控制器层和
实现层就是简单的main方法里的实现语句。
然后控制器层里主要是两个方法index和uploadFile.
index方法是页面初时进来时通过其来加载模板,第一个if是判断是否正反上传数量相同,不一样则清除。第二个if是为页面刷新准备的,如果以前有上传并成功识别了,就把前一次的结果加载出来。
uploadFile,传入了三个参数,页面上传来的身份证的正反面和重定向使用的参数。首先用if判断是否传入了图片,如果没有则重定向到首页并提醒一定要上传文件。然后再进入主逻辑,先判断目录是否存在,不存在则递归去创建。然后如果上传不为空则将其保存在本地(saveFile方法:换一个文件名防止覆盖,然后用copy保存图片)然后通过ocrservice方法得到我们想要的数据保存到缓存。
ocrservice(在开头需要自己的keyid和keysecret)有两个方法init初始化和RecognizerIdCard。init:先初始化一系列的config的信息,然后在通过config信息初始化Client,最后初始化runtime。RecognizerIdCard:调用身份证识别的逻辑,传入了两个参数,一个文件路径一个正反面信息。将穿进来的两个参数放在request里,再用ocrClient调用识别方法,拿到respond。respond数据中含正反面信息,通过if判断,将数据hasmap化再传给控制层。
配置文件:放本地上传路径、自己的keyid和keysecret