捷宇高拍仪XY530 网页集成总结
应甲方要求,需要把高拍仪集成到B/S系统中来,在集成过程中遇到的几点问题做为总结,以备查找。
1、甲方送来的高拍仪是淘宝上买来的,型号是XY530,功能非常简单,成像效果也很一般。如果没有其它要求,可以尝试用一下。
(PS,捷宇的400客户妹子服务态度挺好,晚上8点多还没下班,赞一个!)
,这货长这样,很朴素!
2、官方的光盘中只有驱动和软件,没有SDK开发包。这里是最新的,http://pan.baidu.com/s/1c247XgG 密码:jmpb
因为集成在网页上是ActiveX控件,仅支持IE浏览器,而且仅支持IE9及以上的浏览器。客户机是XP系统的就别指望了!
3、SDK中的服务器端很简陋,不建议在项目中直接使用。我的项目是.net的,这里贴出C#代码。
[HttpPost]
public ActionResult GPYUpload(string folderId)
{
string msgnull = "", msgconvert = "", msgex = "";
bool flag = true;
for (int i = 0; i < Request.Files.Count;i++ )
{
try
{
if (Request.Files[i] == null || string.IsNullOrEmpty(Request.Files[i].FileName) || Request.Files[i].ContentLength == 0)
{
msgnull = "部分文件未解析到!";
flag = false;
continue;
}
string FileName = Path.GetFileName(Request.Files[i].FileName);
string userId = OperatorProvider.Provider.Current().UserId;
string fileGuid = Guid.NewGuid().ToString();
long filesize = Request.Files[i].ContentLength;
string FileEextension = Path.GetExtension(Request.Files[i].FileName);
string uploadDate = DateTime.Now.ToString("yyyyMMdd");
string virtualPath = string.Format("~/DocumentFile/{0}/{1}/{2}{3}", userId, uploadDate, fileGuid, FileEextension);
string fullFileName = this.Server.MapPath(virtualPath);
string path = Path.GetDirectoryName(fullFileName);
Directory.CreateDirectory(path); if (!System.IO.File.Exists(fullFileName))
{
Request.Files[i].SaveAs(fullFileName);
FileInfoEntity fileInfoEntity = new FileInfoEntity();
fileInfoEntity.IsOnlineView = false;
fileInfoEntity.Create();
fileInfoEntity.FileId = fileGuid;
if (!string.IsNullOrEmpty(folderId))
{
fileInfoEntity.FolderId = folderId;
}
else
{
fileInfoEntity.FolderId = "0";
}
fileInfoEntity.FileName = FileName;// Request.Files[i].FileName;
fileInfoEntity.FilePath = virtualPath;
fileInfoEntity.FileSize = filesize.ToString();
fileInfoEntity.FileExtensions = FileEextension;
fileInfoEntity.FileType = FileEextension.Replace(".", ""); fileInfoBLL.SaveForm("", fileInfoEntity);
} }
catch (Exception ex)
{
msgex += ex.Message;
continue;
}
}
if (flag && Request.Files.Count>0)
{
return Success("上传成功。");
}
else
{
return Content(msgnull + ";" + msgconvert + ";" + msgex);
}
}
4、项目中使用的是IFrame嵌套各个子页面的,当把SDK例子完整放到系统中,一直报错,提示找不到方法。其实这是一个很大的坑!
仅仅是X-UA-Compatible值设置不对。
我的页面中是这样的<meta http-equiv="X-UA-Compatible" content="IE=edge">,SDK例子中是<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">,改成后者就好。
我就比较悲催了,父页面的代码不能改动(框架模版),在IFrame子页面中设置成EmulateIE9,还是无效!
网上查资料,有人说是微软的BUG,原文连接如下:
http://bbs.csdn.net/topics/390634956
只好改成弹出窗口方式了,实在没有办法了。
5、吐槽一下捷宇的SDK,接口太简陋了,可操作的余地太少了。上传过程中的提示太丑太丑,完成后也没有钩子执行自己的方法,就一个弹出框!
不过ActiveX的控件会把图片存在客户机上,你也可以自己去实现上传功能!
总体来说还是很简单的!
捷宇高拍仪XY530 网页集成总结的更多相关文章
- 良田高拍仪集成vue项目
一.硬件及开发包说明: 产品型号为良田高拍仪S1800A3,集成b/s系统,适用现代浏览器,图片使用BASE64数据.开发包的bin文件下的video.flt文件需要和高拍仪型号的硬件id对应,这个可 ...
- 如何在Web页面里使用高拍仪扫描上传图像
如何在Web页面里使用高拍仪扫描上传图像 市场上所有的高拍仪都支持扫描图片并保存到本地,一般公司都会提供控件.开发人员只需要在页面集成就可以进行拍照和扫描.只不过一般扫描的图片是保存在本地固定的文件夹 ...
- web高拍仪图片上传
公司引进高拍仪,想拍完照片点上传按钮直接上传图片.高拍仪接口能提供照片的本地路径,现在的问题是不用file控件选择,只有路径,不知道如何上传到服务器,求解决方案. 方法: 使用泽优Web图片上传控件( ...
- Web操作摄像头、高拍仪、指纹仪等设备的功能扩展方案
摘要:信息系统开发中难免会有要操作摄像头.高拍仪.指纹仪等硬件外设,异或诸如获取机器签名.硬件授权保护(加密锁)检测等情况.受限于Web本身运行机制,就不得不使用Active.浏览器插件进行能力扩展了 ...
- 高拍仪拍照SDK开发(良田影像S300L|S500L)
高拍仪拍照SDK开发下载地址:点击下载 本SDK适用于:良田影像S300L|S500L 高拍仪如图: SDN开发包安装之后找到安装目录,如图: 大家找到各自需要的版本即可,需要注意的是如果需要上传图片 ...
- 如何在Web页面里面使用高拍仪扫描上传图像
问题: 在网页上,客户端访问的时候,可以扫描图象(通过扫描仪),并放到网页上,上传到服务器,如何实现?就是提供扫描仪的驱动程序,并使用扫描仪来扫描图象 ,有没有此类的ActiveX控件 回复: 目前大 ...
- C#开发BIMFACE系列37 网页集成开发1:审图系统中加载模型或图纸
系列目录 [已更新最新开发文章,点击查看详细] 在之前的<C#开发BIMFACE系列>中主要介绍了BIMFACE平台提供的服务端API接口的封装开发与测试过程. 服务端API测试通 ...
- Android -- 真正的 高仿微信 打开网页的进度条效果
(本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...
- 高可用Hadoop平台-集成Hive HAProxy
1.概述 这篇博客是接着<高可用Hadoop平台>系列讲,本篇博客是为后面用 Hive 来做数据统计做准备的,介绍如何在 Hadoop HA 平台下集成高可用的 Hive 工具,下面我打算 ...
随机推荐
- linux命令-stty
一.用途: stty——改变和打印终端行设置 二.参数: 1.打印终端行设置 -a,--all 以人可读的方式打印所有当前设置:-a参数比单独的stty命令输出的终端信息更详细 -g,--save ...
- SPOJ - REPEATS Repeats (后缀数组+RMQ)
题意:求一个串中出现重复子串次数最多的数目. 析:枚举每个长度的子串,至少要重复两次,必然会经过s[l*i]中相邻的两个,然后再分别向前和向后匹配即可. 代码如下: #pragma comment(l ...
- 消息队列--RabbitMQ(一)
1.消息队列概述 可以理解为保存消息的一个媒介/或者是个容器,与之相关有两个概念(即生产者(Publish)与消费者(Consumer)).所谓生产者,就是生产创造消息的一方,那么,消费者便是从队列中 ...
- 审美赛_(java)实现
问题描述 <审美的历程>课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手.老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都 ...
- 【Python之os模块】使用
目录 1. os.path 2. os.work 主要介绍在平时遇到的os模块的使用方法: 1. os.path 1.1 os.path.sep # 系统路径分隔符 # ============= ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(2)
接上篇 2. <dynamicField> 为满足前辍或后辍的一些字段提供统一的定义.如<dynamicField name="*_s" index=&qu ...
- 手写堆的dijkstra
颓废.. #include <cstdio> #include <cstring> #include <algorithm> using namespace std ...
- 消耗战——dp+虚树
题目 [题目描述] 在一场战争中,战场由 $n$ 个岛屿和 $n-1$ 个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为 $1$ 的岛屿,而且他们已经没有足够多 ...
- ssl加密
握手前使用非对称加密, 握手后使用对称加密 前期握手就是用来协商对称加密算法的
- 打印BroadcastReceiver的所有接受者
Android中收到短信等事件都是通过广播发送给应用程序的,手机卫士等程序都是通过注册高优先级的BroadcastReceiver来实现短信防火墙等功能.对于我们来说很想知道系统中都有哪些程序注册了B ...