您的位置:首页 > 大数据 > 人工智能

【教程】扫描识别工具Dynamic Web TWAIN使用教程:将图像上传到Web服务器(上)

2019-01-19 04:13 1211 查看

Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。本文为你介绍在Dynamic Web TWAIN中如何将图像上传到Web服务器。                                                                  

将图像上传到Web服务器

在我们上传图像之前,我们需要设置服务器IP/名称,设置端口号,以及定义操作页面的路径。操作页面指的是接收包含图像数据的HTTP Post请求的目标脚本,并处理所有服务器端操作,如将数据保存在硬盘或数据库上等。以下是一个示例:

上传并保存在服务器磁盘上

var strHTTPServer = location.hostname;
DWObject.HTTPPort = location.port == "" ? 80 : location.port;
var CurrentPathName = unescape(location.pathname);
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1);
var strActionPage = CurrentPath + "actionPage.aspx";
var uploadfilename = "TestImage.pdf";

在代码段中

strHTTPServer用于存储服务器名称,该名称指定将图像上传到哪个服务器。你也可以将服务器的IP用于相同目的。如果你想将图像上传到与当前页面相同的服务器,我们建议你使用location.hostname来获取hostname运行时。

HTTPPort属性指定用于上传的HTTP端口。通常,端口80用于HTTP,端口443用于HTTPS。如果你不确定端口号,可以使用location.port ==“”? 80:location.port在运行时获取当前端口号。

CurrentPathName和CurrentPath用于构建操作页面的相对路径。

strActionPage存储操作页面的相对路径。

uploadfilename存储上传图像的文件名。你应该相应地更改文件名的扩展名。

注意:

在10.0及更高版本中,我们使用浏览器作为上传代理。由于浏览器有安全限制,不允许客户端脚本(例如,JavaScript)向另一个域发出请求。因此,当你尝试将映像上传到具有不同域,子域,端口或协议的服务器时,你需要通过添加HTTP响应头文件来配置服务器以允许此类请求,即:Access-Control-Allow-Origin: *

以IIS 7为例。你需要做的是将以下代码段合并到应用程序/站点根目录的web.config文件中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET,PUT"/>
<add name="Access-Control-Allow-Headers" value="x-requested-with"/>
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>

如果你还没有web.config文件,只需创建一个名为“web.config”的新文件并添加上面的代码段。

方法

现在,我们可以调用其中一个HTTP上传方法来上传图像。我们共有8种方法:

格式 方法
任何类型 HTTPUploadThroughPostDirectly( )
支持的图像 HTTPUpload( )
HTTPUploadThroughPost( )
HTTPUploadThroughPostEx( )
多页PDF HTTPUploadAllThroughPostAsPDF( )
HTTPUploadThroughPostAsMultiPagePDF( )
多页TIFF HTTPUploadAllThroughPostAsMultiPageTIFF( )
HTTPUploadThroughPostAsMultiPageTIFF( )

我们以这个方法HTTPUploadAllThroughPostAsPDF( )为例:

DWObject.HTTPUploadAllThroughPostAsPDF(
strHTTPServer,
strActionPage,
uploadfilename,
OnHttpUploadSuccess,
OnHttpUploadFailure
);

使用此方法,Dynamic Web TWAIN控件中的所有图像将作为一个多页PDF文件发送到Web服务器。

在上面的代码中,参数OnHttpUploadSuccess和OnHttpUploadFailure是可选的回调函数。如果它们存在,则该方法是异步的;否则,该方法是同步的。你可以异步使用这些方法以避免可能出现浏览器挂起。

以下是这两个函数的简单实现:

function OnHttpUploadSuccess() {
console.log('successful');
}
function OnHttpUploadFailure(errorCode, errorString, sHttpResponse) {
alert(errorString + sHttpResponse);
}

如果要将一个图像上传为单页文件,可以使用HTTPUploadThroughPost( ) 或 HTTPUploadThroughPostEx( )。

如果要将所选图像上传为多页文件,可以使用HTTPUploadThroughPostAsMultiPagePDF( ) 或 HTTPUploadThroughPostAsMultiPageTIFF( )。

下一篇文章将为大家如何将图像上传到FTP、数据库等。

                                                       【Dynamic Web TWAIN最新版免费下载>>>

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐