翻譯|使用教程|編輯:黃竹雯|2019-01-15 11:57:39.000|閱讀 467 次
概述:本文為你介紹在Dynamic Web TWAIN中如何將圖像上傳到Web服務(wù)器。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Dynamic Web TWAIN是一個(gè)專為Web應(yīng)用程序設(shè)計(jì)的TWAIN掃描識別控件。你只需在TWAIN接口寫幾行代碼,就可以用兼容TWAIN的掃描儀掃描文檔或從數(shù)碼相機(jī)/采集卡中獲取圖像。本文為你介紹在Dynamic Web TWAIN中如何將圖像上傳到Web服務(wù)器。
在我們上傳圖像之前,我們需要設(shè)置服務(wù)器IP/名稱,設(shè)置端口號,以及定義操作頁面的路徑。操作頁面指的是接收包含圖像數(shù)據(jù)的HTTP Post請求的目標(biāo)腳本,并處理所有服務(wù)器端操作,如將數(shù)據(jù)保存在硬盤或數(shù)據(jù)庫上等。以下是一個(gè)示例:
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用于存儲服務(wù)器名稱,該名稱指定將圖像上傳到哪個(gè)服務(wù)器。你也可以將服務(wù)器的IP用于相同目的。如果你想將圖像上傳到與當(dāng)前頁面相同的服務(wù)器,我們建議你使用location.hostname來獲取hostname運(yùn)行時(shí)。
HTTPPort屬性指定用于上傳的HTTP端口。通常,端口80用于HTTP,端口443用于HTTPS。如果你不確定端口號,可以使用location.port ==“”? 80:location.port在運(yùn)行時(shí)獲取當(dāng)前端口號。
CurrentPathName和CurrentPath用于構(gòu)建操作頁面的相對路徑。
strActionPage存儲操作頁面的相對路徑。
uploadfilename存儲上傳圖像的文件名。你應(yīng)該相應(yīng)地更改文件名的擴(kuò)展名。
注意:
在10.0及更高版本中,我們使用瀏覽器作為上傳代理。由于瀏覽器有安全限制,不允許客戶端腳本(例如,JavaScript)向另一個(gè)域發(fā)出請求。因此,當(dāng)你嘗試將映像上傳到具有不同域,子域,端口或協(xié)議的服務(wù)器時(shí),你需要通過添加HTTP響應(yīng)頭文件來配置服務(wù)器以允許此類請求,即:Access-Control-Allow-Origin: *
以IIS 7為例。你需要做的是將以下代碼段合并到應(yīng)用程序/站點(diǎn)根目錄的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文件,只需創(chuàng)建一個(gè)名為“web.config”的新文件并添加上面的代碼段。
現(xiàn)在,我們可以調(diào)用其中一個(gè)HTTP上傳方法來上傳圖像。我們共有8種方法:
格式 | 方法 |
任何類型 | |
支持的圖像 | |
多頁P(yáng)DF | |
多頁TIFF |
我們以這個(gè)方法HTTPUploadAllThroughPostAsPDF( )為例:
DWObject.HTTPUploadAllThroughPostAsPDF( strHTTPServer, strActionPage, uploadfilename, OnHttpUploadSuccess, OnHttpUploadFailure );
使用此方法,Dynamic Web TWAIN控件中的所有圖像將作為一個(gè)多頁P(yáng)DF文件發(fā)送到Web服務(wù)器。
在上面的代碼中,參數(shù)OnHttpUploadSuccess和OnHttpUploadFailure是可選的回調(diào)函數(shù)。如果它們存在,則該方法是異步的;否則,該方法是同步的。你可以異步使用這些方法以避免可能出現(xiàn)瀏覽器掛起。
以下是這兩個(gè)函數(shù)的簡單實(shí)現(xiàn):
function OnHttpUploadSuccess() { console.log('successful'); } function OnHttpUploadFailure(errorCode, errorString, sHttpResponse) { alert(errorString + sHttpResponse); }
如果要將一個(gè)圖像上傳為單頁文件,可以使用HTTPUploadThroughPost( ) 或 HTTPUploadThroughPostEx( )。
如果要將所選圖像上傳為多頁文件,可以使用HTTPUploadThroughPostAsMultiPagePDF( ) 或 HTTPUploadThroughPostAsMultiPageTIFF( )。
下一篇文章將為大家如何將圖像上傳到FTP、數(shù)據(jù)庫等。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn