MVC 身份证图像识别(调用dll)
2024-09-06 09:24:09
Index.cshtml
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>身份证图像识别</title>
<script type="text/javascript" src="~/Scripts/jquery-1.9.0.min.js"></script>
<script src="~/Scripts/ajaxfileupload.js" type="text/javascript"></script> <script type="text/javascript">
function ajaxFileUpload(e) {
var files = $('input[name="FileUpload"]').prop('files');//获取到文件列表
if (files.length == 0) {
alert('请选择文件');
return;
}
$.ajaxFileUpload(
{
url: '/People/IDCodeOcr', //请求地址
secureuri: false,
fileElementId: 'FileUpload', //上传文件控件ID
dataType: 'text', //可以是json这里的格式
success: function (data)
{
$("#Status").html('执行结束');
var obj = $.parseJSON(data);
if (obj.length > 0) {
var people = $.parseJSON(obj[0]);
$("#Name").html(people.name);
$("#Address").html(people.address);
$("#Birth").html(people.birth);
$("#ID").html(people.id);
$("#Sex").html(people.sex);
$("#Nation").html(people.nation);
$("#Authority").html(people.authority);
$("#ValidDate").html(people.valid_date);
}
},
error: function (data, status, e)
{
alert("验证失败,请上传身份证照片!");
}
}
);
}
</script>
</head> <body>
<input type="file" name="FileUpload" ID="FileUpload" onchange="javascript:ajaxFileUpload();" />
<table border="1">
<tr>
<td><span id="Status">等待执行:</span></td>
<td>***************************************</td>
</tr>
<tr>
<td><span>姓名:</span></td>
<td><span id="Name"></span></td>
</tr>
<tr>
<td><span>家庭住址:</span></td>
<td><span id="Address"></span></td>
</tr>
<tr>
<td><span>生日:</span></td>
<td><span id="Birth"></span></td>
</tr>
<tr>
<td><span>身份证号码:</span></td>
<td><span id="ID"></span></td>
</tr>
<tr>
<td><span>性别:</span></td>
<td><span id="Sex"></span></td>
</tr>
<tr>
<td><span>签发机关:</span></td>
<td><span id="Authority"></span></td>
</tr>
<tr>
<td><span>有效期限:</span></td>
<td><span id="ValidDate"></span></td>
</tr>
</table>
</body>
</html>
PeopleController.cs
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Web;
using System.Web.Mvc;
using TencentYoutuYun.SDK.Csharp; namespace MVCPeopleInfoByIDCard.Controllers
{
public class PeopleController : Controller
{
// GET: People
public ActionResult Index()
{
return View();
} public JsonResult IDCodeOcr()
{
// 获取上传图片
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
if (files.Count == )
{
return Json("Faild", JsonRequestBehavior.AllowGet);
} HttpPostedFile file = files[];
MD5 md5Hasher = new MD5CryptoServiceProvider();
byte[] arrbytHashValue = md5Hasher.ComputeHash(file.InputStream);
string fileName = BitConverter.ToString(arrbytHashValue).Replace("-", "");
string fileEextension = Path.GetExtension(files[].FileName);
string virtualPath = string.Format("/ComponentAttachments/{0}/{1}{2}", DateTime.Now.ToString("yyyyMMdd"), fileName, fileEextension);// /ComponentAttachments/20191218/F89624059F0C103433331D9D14E51581.jpg
string filePath = Server.MapPath(virtualPath); string dir = Path.GetDirectoryName(filePath);
if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
if (!System.IO.File.Exists(filePath)) file.SaveAs(filePath); List<string> results = new List<string>();
//
// 身份证识别dll
OCR ocr = new OCR(filePath, );
JsonConvert.SerializeObject(ocr);
results.Add(ocr.result);
var obj = Json(results, "text/html", JsonRequestBehavior.AllowGet);
return obj;
}
}
}
最新文章
- 【C#】【Thread】Semaphore/SemaphoreSlim信号量
- zaqar项目介绍
- MapReduce中的作业调度
- 一步一步学android控件(之十六)—— CheckBox
- 安装Win7和Ubuntu12.04双系统后,意外删除Ubuntu12.04引导文件,出现error:unknown filesystem;grub rescue>;错误的解决方案
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
- 滴滴专车司机苹果手机ios客户端可以下载了
- ActionScript GifPlayer的修改
- Windows下将ImageMagick移植到Android平台
- rpm包
- LeetCode第七天
- 【Teradata SQL】使用SQL将多个逗号分隔改为一个逗号分隔
- [20170825]11G备库启用DRCP连接3.txt
- openssl实现CA自签证书和颁发数字证书
- c#测试执行时间的方法
- 新买的mac笔记本,发现vi编辑器没有颜色的解决方案
- ubuntu17.10 安装CUDA
- 对自写的Asp.Net分页控件的应用方式(异步无刷新分页)
- R1(下)—数据挖掘—关联规则理论介绍与R实现
- vps上搭建jupyter notebook远程服务
热门文章
- vue-awesome-swiper中的数据异步加载
- 简单的LNMP安全加固
- React Native适配IPhoneX系列设备之<;SafeAreaView />;
- Python语法速查: 4. 字符串常用操作
- 对于Python语音性能的一些个人见解
- 机器学习--K近邻 (KNN)算法的原理及优缺点
- 算法问题实战策略 CHILDRENDAY
- Java流程控制之顺序结构
- Codeforces Round #603 (Div. 2) A. Sweet Problem 水题
- 描述符(__get__和__set__和__delete__)