【教程】掃描識別工具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、數據庫等。

Dynamic Web TWAIN最新版免費下載>>>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章