明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

XML技術(shù)上傳文件2

[摘要]服務(wù)器端:  從Request對(duì)象中讀出XML文檔讀出二進(jìn)制節(jié)點(diǎn)中的數(shù)據(jù)并且存儲(chǔ)到服務(wù)器上的文件中。當(dāng)然,我們也可以將其存儲(chǔ)到數(shù)據(jù)庫(kù)的BLOB型字段中! ≡诮忉屵@段代碼之前,我們可以對(duì)這個(gè)方案進(jìn)行一些思考。對(duì)XML的思考  XML格式支持很多數(shù)據(jù)類(lèi)型,比如numeric, float, char...
服務(wù)器端:

  從Request對(duì)象中讀出XML文檔讀出二進(jìn)制節(jié)點(diǎn)中的數(shù)據(jù)并且存儲(chǔ)到服務(wù)器上的文件中。當(dāng)然,我們也可以將其存儲(chǔ)到數(shù)據(jù)庫(kù)的BLOB型字段中。
  在解釋這段代碼之前,我們可以對(duì)這個(gè)方案進(jìn)行一些思考。

對(duì)XML的思考

  XML格式支持很多數(shù)據(jù)類(lèi)型,比如numeric, float, character等等。很多作者將XML定義為ASCII格式,但是我們不能忽視,XML技術(shù)還可以使用“bin.base64”數(shù)據(jù)類(lèi)型來(lái)描述二進(jìn)制信息。這個(gè)特性在MS XML3.0解析器重得到完全的支持,但是目前還需要一些特別設(shè)置。該對(duì)象提供一些可以對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行完全控制的屬性:

  obj_node.dataType - 該可讀寫(xiě)的屬性定義了特定節(jié)點(diǎn)的數(shù)據(jù)類(lèi)型。MSXML解析器支持更多的數(shù)據(jù)類(lèi)型(參見(jiàn)MSDN:http://msdn.microsoft.com/library/psdk/xmlsdk/xmls3z1v.htm)
對(duì)于二進(jìn)制數(shù)據(jù),我們可以使用“bin.base64”類(lèi)型。

  obj_node.nodeTypedValue - 該可讀寫(xiě)屬性包含了按照制定類(lèi)型表示的指定節(jié)點(diǎn)的數(shù)據(jù)。
我們可以創(chuàng)建一個(gè)包含多個(gè)bin.base64類(lèi)型節(jié)點(diǎn)的XML文檔,節(jié)點(diǎn)中包含上傳的文件。這點(diǎn)特性可以使用一個(gè)POST一次上傳多個(gè)文件。

  我們可以使用XMLHttpRequest對(duì)象和POST方法發(fā)送一個(gè)XML文檔給Web服務(wù)器。該對(duì)象為HTTP服務(wù)器提供了客戶端協(xié)議支持,允許在Web服務(wù)器上發(fā)送和接受MS XMLDOM對(duì)象。XMLHttpRequest是Internet Explorer 5內(nèi)置的COM對(duì)象(不需要定制安裝),并且發(fā)送完畢后無(wú)需轉(zhuǎn)換頁(yè)面。


對(duì)ADO Stream對(duì)象的思考

  我們可以在客戶端創(chuàng)建一個(gè)包含一個(gè)或者多個(gè)二進(jìn)制節(jié)點(diǎn)的XML文檔。我們還必須把文件內(nèi)容填入節(jié)點(diǎn)中。但是很不幸,腳本語(yǔ)言不能訪問(wèn)本地文件系統(tǒng),并且Scripting.FileSystem對(duì)象(是Win32系統(tǒng)的內(nèi)置對(duì)象)到目前為止還不能訪問(wèn)二進(jìn)制文件。這是設(shè)計(jì)上的限制。所以我們需要另外找一個(gè)可以提供對(duì)本地二進(jìn)制文件的訪問(wèn)的COM對(duì)象。

  ADO Stream對(duì)象(MDAC 2.5中的組件)提供了讀、寫(xiě)和管理二進(jìn)制流數(shù)據(jù)的手段。字節(jié)流的內(nèi)容可以是文本,或者二進(jìn)制數(shù)據(jù),并且沒(méi)有容量上的限制。在ADO 2.5中,Microsoft對(duì)Stream對(duì)象的介紹不屬于ADO對(duì)象結(jié)構(gòu)的任何一層,所以,我們無(wú)需捆綁即可使用該對(duì)象。

  本文中使用Stream對(duì)象來(lái)訪問(wèn)文件內(nèi)容,再把內(nèi)容存入XML節(jié)點(diǎn)。