问题:

IE浏览器下使用Activex插件调用客户端扫描仪扫描文件并山传,可以将纸质档案(如合同、文件、资料等)扫描并将扫描图像保存到服务器,可以用于合同管理、档案管理等。

通过插件方式调用扫描仪扫描并获取图像,可以减少用户操作,减少操作出错,如一次扫描量大也可以使用连续扫描,由系统对扫描文件进行编号或进行其他处理。

web页面中只需通过js调用后启动扫描仪扫描,即可获取扫描文件的图像编码,再通过ajax或表单提交到服务器解码后保存为jpg文件即可。

通过服务器上程序处理后,可以方便以后浏览或去其它用户共享!

web调用扫描仪插件activex扫描图像上传并预览

页面HTML代码

<divid="scanFileList"style="height:300px; overflow:auto;">

</div>

<div>

<inputtype="checkbox"id="cbo_set"/><labelfor="cbo_set">显示扫描设置</label>

<inputtype="checkbox"id="cbo_lxsm"/><labelfor="cbo_lxsm">连续扫描</label>

<inputtype="button"value="扫描并提交"οnclick="scanClick();"/><inputtype="button"οnclick="selscan();"value="选择扫描仪"/>

</div>

改进后

<!DOCTYPEhtml>

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>

<title>Web图片上传控件演示页面</title>

<scripttype="text/javascript"src="js/jquery-1.3.2.min.js"></script>

<scripttype="text/javascript"src="js/json2.min.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/img2.js"charset="utf-8"></script>

</head>

<body>

<p>演示取cookie和session,并传给控件,可支持firefox(45-),chrome(45-)</p>

<divid="img-uper"></div>

<divid="msg"></div>

<scripttype="text/javascript">

var imgUp = new ImageUploader();

imgUp.Config["PostUrl"] = "http://localhost:8889/asp.net/upload.aspx";

imgUp.Config["Cookie"] = 'ASP.NET_SessionId=<%=Session.SessionID%>';

imgUp.Config.Fields["UserID"] = "123456";

imgUp.LoadTo("img-uper");

imgUp.ent.loadCmp = function () {

setTimeout(function () {

//imgUp.addFolder("F:\\ftp");

}, 1000);

};

$(function () {

$("#btnAddLoc").click(function () {

imgUp.addFile($("#tb-path").val());

});

});

</script>

</body>

</html>

服务器端(fileup.aspx)接收文件代码(用户可以根据需要转换为java、php等不同语言以适应现有的系统环境)

string imgBase64 = Request.Params["img"];

if(imgBase64 !=null&& imgBase64 !="")

{

byte[] imgbytes = Convert.FromBase64String(imgBase64);

string imgpath ="temp/"+ System.Guid.NewGuid()+".jpg";

System.IO.FileStream fs =new System.IO.FileStream(Server.MapPath(imgpath), System.IO.FileMode.OpenOrCreate);

fs.Write(imgbytes, 0, imgbytes.Length);

fs.Close();

Response.Write("{id:"+ Request.Params["id"]+",src:'"+ imgpath +"'}");

}

改进后:不需要转换成BASE64,不需要通过AJAX上传,不存在跨域问题,

using System;

using System.Web;

using System.IO;

namespace WebApplication1

{

publicpartialclassupload : System.Web.UI.Page

{

protectedvoid Page_Load(object sender, EventArgs e)

{

if (Request.Files.Count > 0)

{

string folder = Server.MapPath("/upload");

//自动创建上传文件夹

if (!Directory.Exists(folder))

{

Directory.CreateDirectory(folder);

}

HttpPostedFile file = Request.Files.Get(0);

//utf-8编码时需要进行urldecode

string fn = HttpUtility.UrlDecode(file.FileName);//guid,crc,md5,ori

System.Diagnostics.Debug.WriteLine(fn);

string ext = Path.GetExtension(fn).ToLower();

if (ext == ".jpg"

|| ext == ".gif"

|| ext == ".png"

|| ext == ".bmp"

|| ext == ".tif")

{

string filePath = Path.Combine(folder, fn);

file.SaveAs(filePath);

//返回json格式

string res = "{\"id\":\""+id+"\",\"success\":1,\"url\":\"/upload/"+fn+"\"}";

Response.Write(res);

}

}

}

}

}

解决方案:

采用泽优Web图片上传控件(img2)自动上传本地图片。

过程:

在扫描仪扫描后会提供一个事件,在这个事件中可以获取扫描仪扫描的图片路径,将这个路径添加到泽优Web图片上传控件(img2)中,img2就能够自动上传此图片。img2上传成功后会提供一个事件(post_complete),在此事件中可以得到图片上传后的地址。

详细介绍:http://blog.ncmem.com/wordpress/2019/09/05/泽优web图片上传控件img2产品介绍/

b/s系统扫描仪扫描上传相关推荐

  1. Goby 漏洞更新 |海康威视部分iVMS系统存在文件上传漏洞

    漏洞名称:海康威视部分iVMS系统存在文件上传漏洞 English Name:Some Hikvision iVMS file upload vulnerabilitie CVSS core: 9.8 ...

  2. linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器

    如何通过FTP将文件上传到腾讯云Linux云服务器?上一篇小编给大家介绍了通过Winscp将文件上传到云服务器的方法,今天小编为大家介绍过FTP将文件上传到腾讯云Linux云服务器的方法,用户需要使用 ...

  3. linux+nginx+mysql+php系统修改文件上传大小限制

    linux+nginx+mysql+php系统修改文件上传大小限制 对于LNMP框架的一些网站,上传文件大小会受到多个方面的限制,一个是nginx本身的限制,限制了客户端上传文件的大小,会报错&quo ...

  4. itms-services php,APP发布系统 ipa文件上传和下载 itms-service协议

    项目需求:内部测试分发APP,发布系统 ipa文件上传和下载,使用itms-service协议和safari网页内跳转下载 分为下载页面(dl.html).text.plist文件.test.ipa文 ...

  5. 毕业设计——音乐播放系统 可以自己上传歌曲 SSM框架 MYSQL数据库 功能齐全

    音乐播放系统 可以自己上传歌曲 SSM框架 MYSQL数据库 功能齐全 可以注册账号 登录 在线上传歌曲 发表评论 在线听音乐 登录 注册 首页 播放音乐以及在线评论 个人后台页面 查看我发布的以及上 ...

  6. 每日资源分享(彩虹外链PHP网盘V5.4更新 新增用户系统与分块上传)

    demo软件园每日更新资源 1.跟我一起写Python 完整版PDF Python 就为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容.用 Python 开发,许多功 ...

  7. # MAC OS系统通过aspera上传数据到NCBI

    MAC OS系统通过aspera上传数据到NCBI 1.登陆aspera官网:https://www.ibm.com/products/aspera/downloads,下载IBM Aspera Co ...

  8. java如何加入扫描上传_javaWEB连接扫描仪,将扫描的的图片上传至服务器

    问题: 项目中有一个功能,原来是用ckfinder做的,可以选择本地图片上传至服务器,然后将服务器的图片显示在浏览器中,并可以将图片地址保存到数据库:现在客户觉得麻烦,提出连接扫描仪扫描后直接上传至服 ...

  9. 系统中图片上传设计方案

    2019独角兽企业重金招聘Python工程师标准>>> 曾做过一些系统,对于图片上传的相关设计有些疑惑,经过后续的各方面研究,现有了能去除心中困惑的解决方案. 先说说以前做系统时遇到 ...

最新文章

  1. 一行Java代码实现混乱排序List集合
  2. Pandas对象的层次化索引——【from_tuples()、from_arrays()、from_product()、swaplevel()、sort_index()、sort_values()】
  3. 启明星辰集团DT总部落地杭州 数据绿洲版图驱动未来发展
  4. 解决/usr/bin/ld: cannot find -lxxx
  5. CAN笔记(23) CanFestival移植
  6. centos连接xrdp桌面黑屏_小鹅通|视频直播桌面共享模式|视频直播OBS使用教程
  7. vue中父子组件先后渲染_Vue中父子组件执行的先后顺序
  8. 2018级C语言大作业 - 黄金矿工
  9. gitlab和github一起使用
  10. Python加载失败
  11. html网页表单设计实验报告,Html设计实验报告.doc
  12. zbbz 坐标标注lisp_cad坐标标注插件怎么用
  13. matlab 傅里叶变换最美,MATLAB傅里叶变换
  14. java输出100以内的所有质数
  15. 英语4级的分数如何计算机,英语四级分数怎么算
  16. 【STM32单片机】打砖块游戏设计
  17. # kubeadm ——k8S新节点加入集群-notready 问题解决
  18. 高效率科研神器——小软件、大能量
  19. 查看 Linux 进程 巧用ps|grep命令
  20. 有效应对广发逾期催收这样做

热门文章

  1. 咸鱼Maya笔记—骨骼的基本操作
  2. 无处不在的谷歌语音助手
  3. OB0205 obsidian 主题修改插件:Style Settings插件使用
  4. 【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前
  5. OBD 诊断与 UDS 诊断有什么区别?
  6. 【流接口驱动】流接口设备驱动的架构
  7. js判断是否在微信浏览器中打开网页
  8. import、from...improt、from...import *三者的区别
  9. 为了上网,我黑了酒店上网管理系统并脱下酒店/网管的“内裤”
  10. 搜狐账号系统的反人类设计