MVC 身份证图像识别(调用dll)


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;
}
}
}
MVC 身份证图像识别(调用dll)的更多相关文章
- Windows平台Go调用DLL的坑
最近的项目中,使用了GO来开发一些服务中转程序.业务比较简单,但是有一些业务需要复用原有C++开发的代码.而在WINDOWS,用CGO方式来集成C/C++代码并不是太方便.所以用DLL把C++的代码封 ...
- Java 调用 C++ (Java 调用 dll)康哥手把手教你
摘要: 本文原创,转载请注明地址 http://www.cnblogs.com/baokang/p/4979243.html 因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是 ...
- 【转】C#调用DLL
C#中如何调用动态链接库DLL(转) 每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍.首先,您需要了解什么是托管,什么是非托管.一般可以认为:非托管代码主要是基 ...
- C#程序实现动态调用DLL的研究(转)
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- 外壳exe通过反射调用dll时
外壳exe通过反射调用dll时,dll是 4.0的框架,外壳exe也需要编译成4.0的框架,如果dll本身有调用32位的dll,那么外壳exe也需要编译成32位. 调试时报的那个错,直接继续运行,不影 ...
- C++ exe调用dll文件
生成dll程序 extern "C"_declspec(dllexport) void maopao(int *p,int count);void maopao(int *p,in ...
- 卸载AppDomain动态调用DLL异步线程执行失败
应用场景 动态调用DLL中的类,执行类的方法实现业务插件功能 使用Assembly 来实现 但是会出现逻辑线程数异常的问题 使用AppDomain 实现动态调用,并卸载. 发现问题某个插件中开启异步线 ...
- C++ 生成 dll 和调用 dll 的方法实例(转)
1)生成dll 建立两个文件 xxx.h , xxx.cpp xxx.h内容如下: #ifdef BUILD_XXX_DLL#define EXPORT __declspec(dllexport)#e ...
- 在VC中创建并调用DLL
转自:http://express.ruanko.com/ruanko-express_45/technologyexchange6.html 一.DLL简介 1.什么是DLL? 动态链接库英文为DL ...
随机推荐
- goweb-http协议
先链接到一个我的另一篇有关HTTP的博客 第一次访问时会有些慢~~~ http协议 因为编写 Web 应用必须对 HTTP 有所了解,所以我们对 HTTP 进行介绍 HTTP 协议简介 HTTP 超文 ...
- linux中vi和vim操作
一.简单介绍 vi 和 vim 类似于windows的文本编辑器 所有的Linux系统都会内置vi文本编辑器 vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能 ...
- ES6-Symbol的用法 ,symbol在对象中的应用,改变值
ES6-Symbol的用法,,symbol在对象中的应用,改变值 let a = new String; let b = new Number; let c = new Boolean; let d ...
- SQL Server存储过程备份数据库的脚本-干货
拿AAAAAAAA数据库为例子,除了汉字标注的替换真实的数据,其他都不动 CREATE proc [dbo].[p_log_backupAAAAAAAA] @dbname sysn ...
- VirtualBox设置自动适应屏幕
设备 --> 安装增强功能 等待安装完成,就能自动适应屏幕大小了
- Docker组成三要素
目录 镜像 容器 仓库 总结 Docker的基本组成三要素 镜像 容器 仓库 镜像 Docker 镜像(Image)就是一个只读的模板.镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器. ...
- Educational Codeforces Round 76 (Rated for Div. 2)
传送门 A. Two Rival Students 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/13 22:37:26 */ #incl ...
- 冒泡排序和sort,sorted排序函数
冒泡: # 轮数 元素个数 比较次数# 1 6 5# 2 5 4# 3 4 3# 4 3 2# 5 2 1 # 列表有n个元素,则应比较n-1轮,即循环次数n-1 a=[85,7,4,89,34,2] ...
- bzoj5219 [Lydsy2017省队十连测] 最长路径
题意: 做法来自 首先竞赛图缩点后是一条链,\(1\)号节点在开头的那个\(SCC\)中,因此从\(1\)号节点出发的最长链即为\(1\)号节点所在的\(SCC\)的大小\(+1\)号节点拓扑序之后的 ...
- WPF Datagrid 控制 第一行和第一列之间的空白
原文:WPF Datagrid 控制 第一行和第一列之间的空白 这个位置就是 这里 我们更改 DataGridControltemplate 模板 看树形结构 里面是一个BUtton 功能是全选 能找 ...