XML上傳檔案例子(轉)
本文講解了一個使用XML技術上傳檔案的例子,使用該方法沒有傳統方法中的種種限制。 這個例子講述瞭如何使用MSXML3.0和ADO Stream物件來實現這種新的上傳方法。好處有很多,比如,不需要專用的上傳元件。
引言
為了在HTML網頁中獲得上傳功能,在客戶端我們可以使用如下格式的FORM:
obj_node.dataType - 該可讀寫的屬性定義了特定節點的資料型別。MSXML解析器支援更多的資料型別(參見MSDN:)
對於二進位制資料,我們可以使用“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節點。
客戶端
以下示例程式碼使用Stream和MSXML物件完成檔案上傳動作。
伺服器端
以下程式碼使用相同的物件提供伺服器端的上傳處理功能。
也可以使用Stream物件把資料放到資料庫的BLOB型欄位中。
使用該方法的益處
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950350/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檔案上傳用XML (轉)XML
- 使用XML上傳檔案 (轉)XML
- 使用XML幫助上傳檔案 (轉)XML
- Java關於檔案上傳的一個例子Java
- php檔案上傳之多檔案上傳PHP
- perl檔案上傳程式,支援多檔案! (轉)
- spring mvc(註解)上傳檔案的簡單例子SpringMVC單例
- 求助!!!Java傳輸XML檔案JavaXML
- 單個檔案上傳和批量檔案上傳
- 檔案上傳
- SpringMVC 單檔案上傳與多檔案上傳SpringMVC
- XML口令檔案描述 (轉)XML
- uploadify前臺上傳檔案,java後臺處理的例子Java
- Java大檔案上傳、分片上傳、多檔案上傳、斷點續傳、上傳檔案minio、分片上傳minio等解決方案Java斷點
- 檔案上傳之三基於flash的檔案上傳
- 前端大檔案上傳/分片上傳前端
- 也談一下檔案上傳 (轉)
- Flask——檔案上傳Flask
- PHP上傳檔案PHP
- JavaScript 檔案上傳JavaScript
- Git上傳檔案Git
- YII檔案上傳
- 檔案上傳概述
- beego上傳檔案Go
- 上傳檔案流程
- 上傳EXCLE檔案
- PHP 檔案上傳PHP
- 檔案上傳漏洞
- vbs類生成xml檔案(轉)XML
- MVC檔案上傳 - 使用Request.Files上傳多個檔案MVC
- .NET Core 如何上傳檔案及處理大檔案上傳
- 一個ORACLE匯入和匯出XML檔案的例子OracleXML
- PHP未明遠端任意檔案上傳漏洞(轉)PHP
- Django檔案上傳 -- 適用於單一小檔案上傳Django
- 上傳檔案的陷阱
- HTTP檔案上傳原理HTTP
- 上傳檔案專題
- PHP 分片上傳檔案PHP