asp.net+扫描仪+图片上传

摘要:
在网页中,您只需在调用js后启动扫描仪扫描以获取扫描文件的图像编码,然后通过ajax或表单将其提交给服务器进行解码并保存为jpg文件。web调用扫描器插件activex扫描图像,上传并预览页面HTML代码显示扫描设置改进后Web图像上传控制演示页面显示获取cookie和会话并将其传递给控件。它可以支持firefox(45-)、chrome(45--)varimgUp=newImageUploader();imgUp.Config[”PostUrl“]=”http://localhost:8889/asp.net/upload.aspx“;imgUp.Config[”cookie“]='ASP.NET_SessionId=';imgUp.Config.Fields[”UserID“]=”123456“;img Up.LoadTo;imgUp.ent.loadCmp=function(){setTimeout;};$;服务器端接收文件代码stringBase64=Request.Params[”img“];if(imgBase64!

问题:

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

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

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

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

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

asp.net+扫描仪+图片上传第1张

 

页面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产品介绍/

免责声明:文章转载自《asp.net+扫描仪+图片上传》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何使用Linux套接字?python通过cython实现加密下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

前端js图片上传

前端js图片上传,原理用input type="file"获取图片然后把图片转换成base64编码传到后台. 图片上传 <!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device...

图片上传JS插件梳理与学习

项目的oper端和seller端,用了两个不同插件,简单了解一下: 一、seller端:AjaxUpload.js seller端使用的是 AjaxUpload.js ,封装好的一个库。调用时传入参数,配置相关属性即可。 1、使用步骤 引入JS文件; JS代码构建对象,传入对应参数;同时JS中的方法可以进行图片上传之前之后的处理; 后台:实现图片上传同时...

el-upload配合vue-cropper实现上传图片前裁剪

需求背景 上传一个封面图,在上传之前需要对图片进行裁剪,上传裁剪之后的图片,类似微信的上传头像。 技术方案 上传肯定是用element的 el-upload 组件实现上传,非常方便,各种钩子函数。 裁剪一开始找的 cropper 看着功能到是非常齐全,api也比较丰富,基本是符合预期的需求的。但是此库是基于jq 的,在vue项目中有点难用。于是就找到了 v...

wangEditor编辑器的使用

使用场景wangEditor  x-admin前端框架 文档手册地址:https://www.wangeditor.com/ 第一步:在html 页面引入需要的js(最好把这些js 下载下来,本地引入) <script type="text/javascript" src="https://unpkg.com/wangeditor/dist/wang...

kindEditor上传图片错误,不成功的问题总结

自己的网站是用的GB2312的编码,ASP做的网站。 原来用了ewebeditor 的后台HTML编译器,在使用了新空间后,编译器上传图片不成功了。 我在网上找ewebeditor相关的资料,发现资料很少,自己去研究太花时间了,ewebeditor也不支持非IE的浏览器。还是另外使用一个HTML后台编辑器吧。 在网上搜索了几个有名的后台编辑器,如下: CK...

java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)

最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.currentThread().getContextClassLoader().getResource("/").getPath().replaceAll("WEB-INF...