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

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( )
多页PDFHTTPUploadAllThroughPostAsPDF( )
HTTPUploadThroughPostAsMultiPagePDF( )
多页TIFFHTTPUploadAllThroughPostAsMultiPageTIFF( )
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、数据库等


转载于:https://juejin.im/post/5c41721651882524b4073f6b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值