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 ...
随机推荐
- 搜索某个目录下所有jar包中的mapper目录下的xml文件
rm -rf /mapper/* find /data/app/app-*/lib ! -path "*xnpush*" ! -path "*portal*" ...
- ramfs 和 tmpfs 以及 ramdisk相关调研
最近需要使用到 ramfs 和 tmpfs 做内存文件系统,下面对这两个文件系统相关的信息,做一下总结: 参考链接: https://www.thegeekstuff.com/2008/11/over ...
- 删除Word中出现的空白页
删除Word中出现的空白页 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ Word中出现空白页,怎么删都删不掉,Backspace与Delete键不管 ...
- Xposed优缺点和入门
Xposed框架的原理是替换安卓系统/System/bin目录下的文件,从而实现对系统某些功能的替换,进而给予基于 Xposed 框架开发的App更多权限. 优点:1.功能强大2.执行效率快缺点:1. ...
- 201871010113-刘兴瑞《面向对象程序设计(java)》第一周学习总结
正文开头: 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接 ...
- C语言快速入门一:win10系统环境搭建
0.搭建环境:WIN10 64位 1.下载minGW.zip编译器 2.解决上述文件,配置环境变量 3.配置变成后验证:打开cmd命令行,输入gcc -v 提示以下内容,说明编译器安装成功 D:\mm ...
- QT向界面中嵌套新的界面
简单说下 想要实现的内容 我们有一个主窗口mainwindow,需要向其中放入新的界面,你可以自己定义里面内容. 大致的效果图如下 实现起来就是利用QT的layout布局 使用水平布局QHboxlay ...
- for(var i in items) 和 for(var i;i<items.length;i++) 区别
前者循环的是属性,后者循环的才是数组. 若项目中对数组属性进行了扩展,那切记不能使用前者,否则在循环数组时扩展的函数体也会被当做数据返回. var data = { p1:1, p2:"b& ...
- MySQL中使用group_concat遇到的坑
在使用group_concat的过程中遇到个问题,这里记录一下:在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是10 ...
- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'infor
今天在Navicat上执行SQL增删改查数据操作的时候出现了下面这个问题 Expression #1 of ORDER BY clause is not in GROUP BY clause and ...