DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML技術上傳文件2
XML技術上傳文件2
編輯:XML詳解     
G>服務器端:

  從Request對象中讀出XML文檔讀出二進制節點中的數據並且存儲到服務器上的文件中。當然,我們也可以將其存儲到數據庫的BLOB型字段中。
  在解釋這段代碼之前,我們可以對這個方案進行一些思考。

對XML的思考

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

  obj_node.dataType - 該可讀寫的屬性定義了特定節點的數據類型。MSXML解析器支持更多的數據類型(參見MSDN:http://msdn.microsoft.com/library/psdk/XMLsdk/XMLs3z1v.htm)
對於二進制數據,我們可以使用“bin.base64”類型。

  obj_node.nodeTypedValue - 該可讀寫屬性包含了按照制定類型表示的指定節點的數據。
我們可以創建一個包含多個bin.base64類型節點的XML文檔,節點中包含上傳的文件。這點特性可以使用一個POST一次上傳多個文件。

  我們可以使用XMLHttpRequest對象和POST方法發送一個XML文檔給Web服務器。該對象為HTTP服務器提供了客戶端協議支持,允許在Web服務器上發送和接受MS XMLDOM對象。XMLHttpRequest是Internet Explorer 5內置的COM對象(不需要定制安裝),並且發送完畢後無需轉換頁面。


對ADO Stream對象的思考

  我們可以在客戶端創建一個包含一個或者多個二進制節點的XML文檔。我們還必須把文件內容填入節點中。但是很不幸,腳本語言不能訪問本地文件系統,並且Scripting.FileSystem對象(是Win32系統的內置對象)到目前為止還不能訪問二進制文件。這是設計上的限制。所以我們需要另外找一個可以提供對本地二進制文件的訪問的COM對象。

  ADO Stream對象(MDAC 2.5中的組件)提供了讀、寫和管理二進制流數據的手段。字節流的內容可以是文本,或者二進制數據,並且沒有容量上的限制。在ADO 2.5中,Microsoft對Stream對象的介紹不屬於ADO對象結構的任何一層,所以,我們無需捆綁即可使用該對象。

  本文中使用Stream對象來訪問文件內容,再把內容存入XML節點。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved