web扫描仪上传 – 泽优软件博客 http://blog.ncmem.com/wordpress 荆门泽优软件有限公司官方博客 Thu, 05 Sep 2019 08:28:42 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.7.5 关于客户端如何使用扫描仪的问题(在B/S系统中)? http://blog.ncmem.com/wordpress/2019/09/05/%e5%85%b3%e4%ba%8e%e5%ae%a2%e6%88%b7%e7%ab%af%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e6%89%ab%e6%8f%8f%e4%bb%aa%e7%9a%84%e9%97%ae%e9%a2%98%e5%9c%a8b-s%e7%b3%bb%e7%bb%9f%e4%b8%ad%ef%bc%9f/ Thu, 05 Sep 2019 08:28:42 +0000 http://blog.ncmem.com/wordpress/?p=843 继续阅读 关于客户端如何使用扫描仪的问题(在B/S系统中)?]]> 问题:

在网页上,客户端访问的时候,可以扫描图象(通过扫描仪),并放到网页上,上传到服务器,如何实现?就是提供扫描仪的驱动程序,并使用扫描仪来扫描图象

,有没有此类的ActiveX控件

 

回复:

目前大多数扫描仪都提供了ActiveX控件,在网页中可以直接集成使用。这些控件支持扫描并将扫描的图片保存到本地目录。并且提供了扫描事件,在事件中可以得到扫描后的图片的地址。

 

解决方案:

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

 

过程:

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

 

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

]]>
B/S(WEB)系统中使用Activex插件调用扫描仪实现连续扫描并上传图像(IE文件扫描并自动上传 http://blog.ncmem.com/wordpress/2019/09/05/b-sweb%e7%b3%bb%e7%bb%9f%e4%b8%ad%e4%bd%bf%e7%94%a8activex%e6%8f%92%e4%bb%b6%e8%b0%83%e7%94%a8%e6%89%ab%e6%8f%8f%e4%bb%aa%e5%ae%9e%e7%8e%b0%e8%bf%9e%e7%bb%ad%e6%89%ab%e6%8f%8f%e5%b9%b6%e4%b8%8a/ Thu, 05 Sep 2019 08:21:55 +0000 http://blog.ncmem.com/wordpress/?p=841 继续阅读 B/S(WEB)系统中使用Activex插件调用扫描仪实现连续扫描并上传图像(IE文件扫描并自动上传]]> 问题:

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

]]>
网页中怎么实现客户端通过扫描仪把图象传到服务器上 http://blog.ncmem.com/wordpress/2019/09/05/%e7%bd%91%e9%a1%b5%e4%b8%ad%e6%80%8e%e4%b9%88%e5%ae%9e%e7%8e%b0%e5%ae%a2%e6%88%b7%e7%ab%af%e9%80%9a%e8%bf%87%e6%89%ab%e6%8f%8f%e4%bb%aa%e6%8a%8a%e5%9b%be%e8%b1%a1%e4%bc%a0%e5%88%b0%e6%9c%8d%e5%8a%a1/ Thu, 05 Sep 2019 08:09:09 +0000 http://blog.ncmem.com/wordpress/?p=839 继续阅读 网页中怎么实现客户端通过扫描仪把图象传到服务器上]]> 问题:

网页中如何实现客户端通过扫描仪把图象传到服务器上?

简化后:

应该说你要做的就是对一个指定文件夹里面的图片进行上传;其他工作都应该是扫描仪的软件来完成;

 

解决方案:

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

 

过程:

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

 

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

]]>
javaWEB连接扫描仪,将扫描的的图片上传至服务器 http://blog.ncmem.com/wordpress/2019/09/05/javaweb%e8%bf%9e%e6%8e%a5%e6%89%ab%e6%8f%8f%e4%bb%aa%ef%bc%8c%e5%b0%86%e6%89%ab%e6%8f%8f%e7%9a%84%e7%9a%84%e5%9b%be%e7%89%87%e4%b8%8a%e4%bc%a0%e8%87%b3%e6%9c%8d%e5%8a%a1%e5%99%a8/ Thu, 05 Sep 2019 07:52:54 +0000 http://blog.ncmem.com/wordpress/?p=837 继续阅读 javaWEB连接扫描仪,将扫描的的图片上传至服务器]]> 问题:

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

这是客户给我的扫描仪文档

能用的就是这个html吧

我一开始以为是用jni驱动dll文件,但是我老大说直接可以用文档里的东西,现在老大出差去了,没辙了

这是那个html的源代码

<!DOCTYPEhtml>

<html>

<head>

    <title>FHK Scan Control Test</title>

    <styletype=”text/css”>

        div#parameters {

            width450px;

            floatleft;

        }

        div#results {width450px; }

        h3h4 {margin-left5px}

        h4 {margin-bottom3px}

        td {background-color#CCEEFF;

            padding9px;

        }

        textarea {

            background-color#CCEEFF;

            border-stylegroove;

            border-width2px;

        }

    </style>

</head>

 

<body>

    <script>

function selectScanner()

{

var rtn = fhkScan.SelectSource(0);

if (rtn == -1)

    {

alert(“Select scanner error, error code = “ + fhkScan.ErrorCode);

    }

}

 

function InitSettings()

{

fhkScan.FileName = document.getElementById(“scanPath”).value;

 

var pixelType = 0;

var rdbPixelType = document.getElementsByName(“PixelType”);

for (var i = 0; i < rdbPixelType.length; i++)

{

if (rdbPixelType[i].checked)

{

pixelType = rdbPixelType[i].value;

break;

}

}

if (pixelType == 0)

{

// Scan to Black & White

fhkScan.PixelType = 0;  // 0 – Black & White, 1 – Grayscale, 2 – RGB Color

fhkScan.FileType = 1;   // 0 – BMP, 1 – TIFF, 2 – Multipage TIFF, 3 – JPEG

fhkScan.CompressionType = 4;    // 0 – No compress, 4 – CCITT G4 (only for B&W), 5 – JPEG

}

else

{

// Scan to Gray or Color

fhkScan.PixelType = pixelType;  // 0 – Black & White, 1 – Grayscale, 2 – RGB Color

fhkScan.FileType = 3;   // 0 – BMP, 1 – TIFF, 2 – Multipage TIFF, 3 – JPEG

fhkScan.JPGQuality = 2;// JPEG data compression level, 0 (small file size) ~ 6 (large file size)

}

 

var resolution = 0;

var rdbResolution = document.getElementsByName(“Resolution”);

for (var i = 0; i < rdbResolution.length; i++)

{

if (rdbResolution[i].checked)

{

resolution = rdbResolution[i].value;

break;

}

}

fhkScan.Resolution = resolution; // 0 – 200 dpi, 1 – 240 dpi, 2 – 300 dpi, 3 – 400 dpi, 4 – 500 dpi, 5 – 600 dpi

 

var paperSupply = 2;

var rdbPaperSupply = document.getElementsByName(“PaperSupply”);

for (var i = 0; i < rdbPaperSupply.length; i++)

{

if (rdbPaperSupply[i].checked)

{

paperSupply = rdbPaperSupply[i].value;

break;

}

}

fhkScan.PaperSupply = paperSupply;  // 1 – ADF front, 2 – ADF double, 3 – ADF back

 

var scanRotate = 0;

var rdbScanRotate = document.getElementsByName(“ScanRotate”);

for (var i = 0; i < rdbScanRotate.length; i++)

{

if (rdbScanRotate[i].checked)

{

scanRotate = rdbScanRotate[i].value;

break;

}

}

fhkScan.ScanRotate = scanRotate; // 0 – None, 1 – 90 degrees, 2 – 180 degrees, 3 – 270 degrees, 4 – Automatic

 

var chkSkipWhitePage = document.getElementById(“SkipWhitePage”);

if (chkSkipWhitePage.checked)

{

fhkScan.SkipWhitePage = 6;  // 0 – Do not skip, 1~15 – the ratio of black dots in the white page

}

else

{

fhkScan.SkipWhitePage = 0;  // 0 – Do not skip, 1~15 – the ratio of black dots in the white page

}

 

var chkShowSourceUI = document.getElementById(“ShowSourceUI”);

if (chkShowSourceUI.checked)

{

fhkScan.ShowSourceUI = true;    // true – Display the scanner source UI, false – Do not display

}

else

{

fhkScan.ShowSourceUI = false;   // true – Display the scanner source UI, false – Do not display

}

 

var chkPromptOverwrite = document.getElementById(“PromptOverwrite”);

if (chkPromptOverwrite.checked)

{

fhkScan.Overwrite = 2;

}

else

{

fhkScan.Overwrite = 1;

}

 

fhkScan.ScanTo = 0;// 0 – to File, 1 – to DIB, 2 – to Memory, Suggest to File

fhkScan.ScanCount = -1;// Number of pages to scan, -1 – all pages on ADF

fhkScan.DetectPageSize = 2;

fhkScan.SourceCurrentScan = 0;

}

 

function startScan()

{

InitSettings();

 

var rtn = fhkScan.OpenScanner(0);

if (rtn == -1)

{

    alert(“Open scanner error, error code = “ + fhkScan.ErrorCode);

return;

}

 

rtn = fhkScan.StartScan(0);

if (rtn == -1)

{

alert(“Start scan error, error code = “ + fhkScan.ErrorCode);

}

 

fhkScan.CloseScanner(0);

}

 

function OnScanToFileEvent(scanFilePath)

{

var txtResults = document.getElementById(“result”);

var str = txtResults.value;

str += scanFilePath;

str += “\r\n”;

txtResults.value = str;

txtResults.scrollTop = txtResults.scrollHeight;

}

 

    </script>

 

    <scriptfor=”fhkScan”event=”ScanToFile(scanFilePath)”>

OnScanToFileEvent(scanFilePath);

    </script>

 

    <h3>Scan Test</h3>

    <p>

        <inputtype=”button”value=”Select Scanner”onclick=”selectScanner()/>

        <inputtype=”button”value=”Scan”style=”width:100px”onclick=”startScan()/>

    </p>

 

    <divid=”parameters”>

        <h4>parameters</h4>

        <tableborder=”1″>

            <tr>

                <td>Scan Path:</td>

                <td>

                    <inputtype=”text”id=”scanPath”size=”35″value=”D:\image”/>

                </td>

            </tr>

            <tr>

                <td>Pixel Type:</td>

                <td>

                    <inputtype=”radio”name=”PixelType”value=”0″/>Black & White<br/>

                    <inputtype=”radio”name=”PixelType”value=”1″/>Grayscale<br/>

                    <inputtype=”radio”name=”PixelType”value=”2″checked=”checked”/>RGB Color<br/>

                </td>

            </tr>

            <tr>

                <td>Resolution:</td>

                <td>

                    <inputtype=”radio”name=”Resolution”value=”0″checked=”checked”/>200 dpi<br/>

                    <inputtype=”radio”name=”Resolution”value=”1″/>240 dpi<br/>

                    <inputtype=”radio”name=”Resolution”value=”2″/>300 dpi<br/>

                    <inputtype=”radio”name=”Resolution”value=”3″/>400 dpi<br/>

                    <inputtype=”radio”name=”Resolution”value=”4″/>500 dpi<br/>

                    <inputtype=”radio”name=”Resolution”value=”5″/>600 dpi<br/>

                </td>

            </tr>

            <tr>

                <td>Paper Supply:</td>

                <td>

                    <inputtype=”radio”name=”PaperSupply”value=”1″/>ADF Front<br/>

                    <inputtype=”radio”name=”PaperSupply”value=”2″checked=”checked”/>ADF Double<br/>

                    <inputtype=”radio”name=”PaperSupply”value=”3″/>ADF Back<br/>

                </td>

            </tr>

            <tr>

                <td>Scan Rotate:</td>

                <td>

                    <inputtype=”radio”name=”ScanRotate”value=”0″checked=”checked”/>None<br/>

                    <inputtype=”radio”name=”ScanRotate”value=”1″/>90 degrees<br/>

                    <inputtype=”radio”name=”ScanRotate”value=”2″/>180 degrees<br/>

                    <inputtype=”radio”name=”ScanRotate”value=”3″/>270 degrees<br/>

                    <inputtype=”radio”name=”ScanRotate”value=”4″/>Automatic<br/>

                </td>

            </tr>

            <tr>

                <td>Others:</td>

                <td>

                    <inputtype=”checkbox”id=”SkipWhitePage”checked=”checked”/>Skip White Page<br/>

                    <inputtype=”checkbox”id=”ShowSourceUI”/>Show Source UI<br/>

                    <inputtype=”checkbox”id=”PromptOverwrite”/>Prompt When Overwrite<br/>

                </td>

            </tr>

        </table>

    </div>

    <divid=”results”>

        <h4>results</h4>

<textareaid=”result”cols=”60″rows=”37″readonly=”readonly”></textarea>

    </div>

    <objectid=”fhkScan”width=”0″height=”0″classid=”clsid:07cf3b59-2cf2-4ee2-bcef-1320638005e7″></object>

</body>

</html>

 

解决方法:

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

 

过程:

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

 

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

]]>
泽优Web图片上传控件(img2)产品介绍 http://blog.ncmem.com/wordpress/2019/09/05/%e6%b3%bd%e4%bc%98web%e5%9b%be%e7%89%87%e4%b8%8a%e4%bc%a0%e6%8e%a7%e4%bb%b6img2%e4%ba%a7%e5%93%81%e4%bb%8b%e7%bb%8d/ Thu, 05 Sep 2019 07:36:33 +0000 http://blog.ncmem.com/wordpress/?p=832 继续阅读 泽优Web图片上传控件(img2)产品介绍]]>

版权所有 2009-2019 荆门泽优软件有限公司

保留所有权利

官方网站:http://www.ncmem.com/

产品首页:http://www.ncmem.com/webapp/img2/index.aspx

开发文档:http://www.ncmem.com/doc/view.aspx?id=95811482adea4139aa914c4adb21f7cf

控件下载:http://www.ncmem.com/webapp/img2/pack.aspx

示例下载:http://www.ncmem.com/webapp/img2/versions.aspx

联系信箱:1085617561@qq.com

联系QQ:1085617561

 

使用泽优Web图片上传控件(img2)帮助解决图片手动上传的问题,使用img2后可以自动上传本地路径下面的图片,不需要用户再手动选择图片。

 

功能:

1.支持自动添加本地文件

2.支持自动添加本地目录

3.支持自动上传

4.支持批量上传

5.支持海量图片上传500+

6.支持多线程上传

7.支持旋转,预览操作。

8.支持自定义附加字段信息

 

优势:

1.不需要通过AJAX上传BASE64,直接上传本地图片文件数据。

2.AJAX上传BASE64存在跨域问题,img2不存在跨域问题,可以灵活指定文件存储服务器。或者采用分布式存储方式。

3.兼容市场上所有高拍仪和扫描仪,兼容旧的系统,旧的高拍仪和扫描仪控件。

4.接口丰富,开发简单,支持二次开发。

 

原理

1.img2提供了接口addFile和addFolder,可以直接加载本地路径下面的图片或目录。

2.添加后可以调用post方法开始上传图片。

3.不需要开发人员编写上传代码,img2提供了asp,jsp,php,asp.net常用语言的上传代码,下载即用,整合方便,代码清晰简单。

 

泽优Web图片上传控件(img2)

 

加载图片

 

php项目截图

 

asp.net项目截图

 

jsp项目截图

 

自动加载本地目录

    <scripttype=”text/javascript”>

        var imgUp = new ImageUploader();

        imgUp.LoadTo(“img-uper”);

        imgUp.ent.loadCmp = function () {

            setTimeout(function () {

                imgUp.addFolder(“F:\\ftp”);//自动加载本地目录下的所有图片

            }, 1000);

        };

    </script>

 

自动加载本地路径下的图片文件

    <scripttype=”text/javascript”>

        var imgUp = new ImageUploader();

        imgUp.LoadTo(“img-uper”);

        imgUp.ent.loadCmp = function () {

            setTimeout(function () {

                imgUp.addFile(“F:\\ftp\\test.jpg”);//

            }, 1000);

        };

    </script>

 

服务端jsp上传代码

    publicvoid SaveFile(FileItem upFile) throws IOException

    {

        String fileName = upFile.getName();

        //如果控件是以UTF-8编码方式提交的数据则使用下面的方式对文件名称进行解码。

        fileName = fileName.replaceAll(“\\+”,“%20”);

        //客户端使用的是encodeURIComponent编码

        fileName = URLDecoder.decode(fileName,“UTF-8”);

        this.m_fileName = fileName;

       

        this.CreateFolder();

        String filePath = this.m_folder + this.m_fileName;     

 

        InputStream stream = upFile.getInputStream();          

        byte[] data = newbyte[(int)upFile.getSize()];//128k

        stream.read(data);

        stream.close();

       

        RandomAccessFile raf = newRandomAccessFile(filePath,“rw”);

        //定位文件位置

        raf.write(data);

        raf.close();

    }

 

asp.net文件上传代码

using System;

using System.Web;

using System.IO;

 

namespace WebApplication1

{

    publicpartialclassupload : System.Web.UI.Page

    {

        protectedvoid Page_Load(object sender, EventArgs e)

        {

            var remark = HttpUtility.UrlDecode(remark);

 

            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);

                }

            }

        }

    }

}

 

php文件上传代码

<?php

ob_start();

//201201/10

$timeDir = date(“Ym”).“/”.date(“d”);

$pathSvr = dirname(__FILE__).“/upload/$timeDir/”;

$curDomain = “http://”.$_SERVER[“HTTP_HOST”];

//相对路径 http://www.ncmem.com/upload/2012-1-10/

$pathRel = $curDomain/img/upload/$timeDir/”;

 

//自动创建目录。upload/2012-1-10

if(!is_dir($pathSvr))

{

    mkdir($pathSvr,0777,true);

}

 

//如果PHP页面为UTF-8编码,请使用urldecode解码文件名称

//$fileName = urldecode($_FILES[‘img’][‘name’]);

//如果PHP页面为GB2312编码,则可直接读取文件名称

$nameSvr  = $_FILES[‘img’][‘name’];

$nameSvr  = urldecode($nameSvr);

$tmpName  = $_FILES[‘img’][‘tmp_name’];

//$uid      = $_POST[“UserID”];

$id       = $_POST[“id”];

$width    = $_POST[“width”];

$height   = $_POST[“height”];

$remark   = $_POST[“remark”];//utf-8则需要进行URL解码,gbk不用解码

$cateName = $_POST[“cname”];

$cateVal  = $_POST[“cvalue”];

 

//取文件扩展名jpg,gif,bmp,png

$path_parts = pathinfo($nameSvr);

$ext = $path_parts[“extension”];

 

//只允许上传图片类型的文件

if(    0 == strcasecmp($ext,“jpg”)

    || 0 == strcasecmp($ext,“jpeg”)

    || 0 == strcasecmp($ext,“png”)

    || 0 == strcasecmp($ext,“gif”)

    || 0 == strcasecmp($ext,“bmp”) )

{

    //xxx/2011_05_05_091250000.jpg

    $savePath = $pathSvr . $nameSvr;

 

    //另存为新文件名称

    if (!move_uploaded_file($tmpName,$savePath))

    {

        exit(‘upload error!’ 文件名称:” .$nameSvr . 保存路径:” . $savePath);

    }

}

 

//输出图片路径

//$_SERVER[‘HTTP_HOST’] localhost:81

//$_SERVER[‘REQUEST_URI’] /FCKEditor2.4.6.1/php/test.php

$reqPath = str_replace(“upload.php”,“”,$_SERVER[‘REQUEST_URI’]);

 

$fn = $pathRel.$nameSvr;

$res = “{\”id\”:\”$id\”,\”success\”:1,\”url\”:\”$fn\”}”;

echo $res;

header(‘Content-type: text/html; charset=utf-8’);

header(‘Content-Length: ‘ . ob_get_length());

 

?>

 

泽优web图片上传控件(img2)采用HTTP协议上传,支持asp,jsp,php,asp.net等任何Web开发语言。且提供js-sdk,能够方便的集成到任何项目中。

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

]]>
如何在Web页面里使用高拍仪扫描上传图像 http://blog.ncmem.com/wordpress/2019/09/05/%e5%a6%82%e4%bd%95%e5%9c%a8web%e9%a1%b5%e9%9d%a2%e9%87%8c%e4%bd%bf%e7%94%a8%e9%ab%98%e6%8b%8d%e4%bb%aa%e6%89%ab%e6%8f%8f%e4%b8%8a%e4%bc%a0%e5%9b%be%e5%83%8f/ http://blog.ncmem.com/wordpress/2019/09/05/%e5%a6%82%e4%bd%95%e5%9c%a8web%e9%a1%b5%e9%9d%a2%e9%87%8c%e4%bd%bf%e7%94%a8%e9%ab%98%e6%8b%8d%e4%bb%aa%e6%89%ab%e6%8f%8f%e4%b8%8a%e4%bc%a0%e5%9b%be%e5%83%8f/#comments Thu, 05 Sep 2019 07:16:08 +0000 http://blog.ncmem.com/wordpress/?p=826 继续阅读 如何在Web页面里使用高拍仪扫描上传图像]]> 如何在Web页面里使用高拍仪扫描上传图像

 

市场上所有的高拍仪都支持扫描图片并保存到本地,一般公司都会提供控件。开发人员只需要在页面集成就可以进行拍照和扫描。只不过一般扫描的图片是保存在本地固定的文件夹下面,需要用户手动选择一下然后上传。

 

泽优Web图片上传控件(img2)帮助解决图片手动上传的问题,使用img2后可以自动上传本地路径下面的图片,不需要用户再手动选择图片。

 

原理

1.img2提供了接口addFile和addFolder,可以直接加载本地路径下面的图片或目录。

2.添加后可以调用post方法开始上传图片。

 

泽优Web图片上传控件(img2)

 

加载图片

 

自动加载本地目录

    <scripttype=”text/javascript”>

        var imgUp = new ImageUploader();

        imgUp.LoadTo(“img-uper”);

        imgUp.ent.loadCmp = function () {

            setTimeout(function () {

                imgUp.addFolder(“F:\\ftp”);//自动加载本地目录下的所有图片

            }, 1000);

        };

    </script>

 

自动加载本地路径下的图片文件

    <scripttype=”text/javascript”>

        var imgUp = new ImageUploader();

        imgUp.LoadTo(“img-uper”);

        imgUp.ent.loadCmp = function () {

            setTimeout(function () {

                imgUp.addFile(“F:\\ftp\\test.jpg”);//

            }, 1000);

        };

    </script>

 

服务端jsp上传代码

    publicvoid SaveFile(FileItem upFile) throws IOException

    {

        String fileName = upFile.getName();

        //如果控件是以UTF-8编码方式提交的数据则使用下面的方式对文件名称进行解码。

        fileName = fileName.replaceAll(“\\+”,“%20”);

        //客户端使用的是encodeURIComponent编码

        fileName = URLDecoder.decode(fileName,“UTF-8”);

        this.m_fileName = fileName;

       

        this.CreateFolder();

        String filePath = this.m_folder + this.m_fileName;     

 

        InputStream stream = upFile.getInputStream();          

        byte[] data = newbyte[(int)upFile.getSize()];//128k

        stream.read(data);

        stream.close();

       

        RandomAccessFile raf = newRandomAccessFile(filePath,“rw”);

        //定位文件位置

        raf.write(data);

        raf.close();

    }

 

asp.net文件上传代码

using System;

using System.Web;

using System.IO;

 

namespace WebApplication1

{

    publicpartialclassupload : System.Web.UI.Page

    {

        protectedvoid Page_Load(object sender, EventArgs e)

        {

            var remark = HttpUtility.UrlDecode(remark);

 

            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);

                }

            }

        }

    }

}

 

php文件上传代码

<?php

ob_start();

//201201/10

$timeDir = date(“Ym”).“/”.date(“d”);

$pathSvr = dirname(__FILE__).“/upload/$timeDir/”;

$curDomain = “http://”.$_SERVER[“HTTP_HOST”];

//相对路径 http://www.ncmem.com/upload/2012-1-10/

$pathRel = $curDomain/img/upload/$timeDir/”;

 

//自动创建目录。upload/2012-1-10

if(!is_dir($pathSvr))

{

    mkdir($pathSvr,0777,true);

}

 

//如果PHP页面为UTF-8编码,请使用urldecode解码文件名称

//$fileName = urldecode($_FILES[‘img’][‘name’]);

//如果PHP页面为GB2312编码,则可直接读取文件名称

$nameSvr  = $_FILES[‘img’][‘name’];

$nameSvr  = urldecode($nameSvr);

$tmpName  = $_FILES[‘img’][‘tmp_name’];

//$uid      = $_POST[“UserID”];

$id       = $_POST[“id”];

$width    = $_POST[“width”];

$height   = $_POST[“height”];

$remark   = $_POST[“remark”];//utf-8则需要进行URL解码,gbk不用解码

$cateName = $_POST[“cname”];

$cateVal  = $_POST[“cvalue”];

 

//取文件扩展名jpg,gif,bmp,png

$path_parts = pathinfo($nameSvr);

$ext = $path_parts[“extension”];

 

//只允许上传图片类型的文件

if(    0 == strcasecmp($ext,“jpg”)

    || 0 == strcasecmp($ext,“jpeg”)

    || 0 == strcasecmp($ext,“png”)

    || 0 == strcasecmp($ext,“gif”)

    || 0 == strcasecmp($ext,“bmp”) )

{

    //xxx/2011_05_05_091250000.jpg

    $savePath = $pathSvr . $nameSvr;

 

    //另存为新文件名称

    if (!move_uploaded_file($tmpName,$savePath))

    {

        exit(‘upload error!’ 文件名称:” .$nameSvr . 保存路径:” . $savePath);

    }

}

 

//输出图片路径

//$_SERVER[‘HTTP_HOST’]localhost:81

//$_SERVER[‘REQUEST_URI’] /FCKEditor2.4.6.1/php/test.php

$reqPath = str_replace(“upload.php”,“”,$_SERVER[‘REQUEST_URI’]);

 

$fn = $pathRel.$nameSvr;

$res = “{\”id\”:\”$id\”,\”success\”:1,\”url\”:\”$fn\”}”;

echo $res;

header(‘Content-type: text/html; charset=utf-8’);

header(‘Content-Length: ‘ . ob_get_length());

 

?>

 

泽优web图片上传控件(img2)采用HTTP协议上传,支持asp,jsp,php,asp.net等任何Web开发语言。且提供js-sdk,能够方便的集成到任何项目中。

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

]]>
http://blog.ncmem.com/wordpress/2019/09/05/%e5%a6%82%e4%bd%95%e5%9c%a8web%e9%a1%b5%e9%9d%a2%e9%87%8c%e4%bd%bf%e7%94%a8%e9%ab%98%e6%8b%8d%e4%bb%aa%e6%89%ab%e6%8f%8f%e4%b8%8a%e4%bc%a0%e5%9b%be%e5%83%8f/feed/ 1