使用XML技術(shù)上傳文件的例子(3)_Xml教程
推薦:一個以Javascript xml的樹型列表 這是在www.java2s.com網(wǎng)站下載的一個以Javascript xml的樹型列表,這個列表界面非常的漂亮,但是由于里面內(nèi)容比較復雜,而現(xiàn)在項目需要用到這個列表,我到現(xiàn)在還沒有摸清怎么在里面讓點擊一
對ADO Stream對象的思考
我們可以在客戶端創(chuàng)建一個包含一個或者多個二進制節(jié)點的XML文檔。我們還必須把文件內(nèi)容填入節(jié)點中。但是很不幸,腳本語言不能訪問本地文件系統(tǒng),并且Scripting.FileSystem對象(是Win32系統(tǒng)的內(nèi)置對象)到目前為止還不能訪問二進制文件。這是設(shè)計上的限制。所以我們需要另外找一個可以提供對本地二進制文件的訪問的COM對象。
ADO Stream對象(MDAC 2.5中的組件)提供了讀、寫和管理二進制流數(shù)據(jù)的手段。字節(jié)流的內(nèi)容可以是文本,或者二進制數(shù)據(jù),并且沒有容量上的限制。在ADO 2.5中,Microsoft對Stream對象的介紹不屬于ADO對象結(jié)構(gòu)的任何一層,所以,我們無需捆綁即可使用該對象。
本文中使用Stream對象來訪問文件內(nèi)容,再把內(nèi)容存入XML節(jié)點。
客戶端
以下示例代碼使用Stream和MSXML對象完成文件上傳動作。
| <HTML> <HEAD><TITLE>File Send</TITLE></HEAD> <BODY> <INPUT id=btn_send name="btn_send" type=button value="FILE SEND"> <DIV id=div_message>Ready</DIV> </BODY> </HTML> <SCRIPT LANGUAGE=JavaScript> // 上傳函數(shù) function btn_send.onclick() { // 創(chuàng)建 ADO-stream 對象 var ado_stream = new ActiveXObject("ADODB.Stream"); // 創(chuàng)建包含默認頭信息和根節(jié)點的 XML文檔 var xml_dom = new ActiveXObject("MSXML2.DOMDocument"); xml_dom.loadXML('<?xml version="1.0" ?> <root/>'); // 指定數(shù)據(jù)類型 xml_dom.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes"); // 創(chuàng)建一個新節(jié)點,設(shè)置其為二進制數(shù)據(jù)節(jié)點 var l_node1 = xml_dom.createElement("file1"); l_node1.dataType = "bin.base64"; // 打開Stream對象,讀源文件 ado_stream.Type = 1; // 1=adTypeBinary ado_stream.Open(); ado_stream.LoadFromFile("c:tmpmyfile.doc"); // 將文件內(nèi)容存入XML節(jié)點 l_node1.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll ado_stream.Close(); xml_dom.documentElement.appendChild(l_node1); // 可以創(chuàng)建多個二進制節(jié)點,一次上傳多個文件 // 把XML文檔發(fā)送到Web服務(wù)器 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("POST","./file_recieve.asp",false); xmlhttp.send(xml_dom); // 顯示服務(wù)器返回的信息 div_message.innerHTML = xmlhttp.ResponseText; } </SCRIPT> |
分享:xml中的空格之完全解說在xml輸入文件中決定哪些空格是重要的,xslt處理器要看見這些空格結(jié)點。而決定的密鑰就是xml:space屬性。 只適合對xml文件結(jié)構(gòu)有一定了解的學者,不適合初學者。請按從上至下的順序閱讀
- 相關(guān)鏈接:
- 教程說明:
Xml教程-使用XML技術(shù)上傳文件的例子(3)
。