使用XML技術(shù)上傳文件的例子(3)_Xml教程
推薦:一個(gè)以Javascript xml的樹(shù)型列表 這是在www.java2s.com網(wǎng)站下載的一個(gè)以Javascript xml的樹(shù)型列表,這個(gè)列表界面非常的漂亮,但是由于里面內(nèi)容比較復(fù)雜,而現(xiàn)在項(xiàng)目需要用到這個(gè)列表,我到現(xiàn)在還沒(méi)有摸清怎么在里面讓點(diǎn)擊一
對(duì)ADO Stream對(duì)象的思考
我們可以在客戶(hù)端創(chuàng)建一個(gè)包含一個(gè)或者多個(gè)二進(jìn)制節(jié)點(diǎn)的XML文檔。我們還必須把文件內(nèi)容填入節(jié)點(diǎn)中。但是很不幸,腳本語(yǔ)言不能訪(fǎng)問(wèn)本地文件系統(tǒng),并且Scripting.FileSystem對(duì)象(是Win32系統(tǒng)的內(nèi)置對(duì)象)到目前為止還不能訪(fǎng)問(wèn)二進(jìn)制文件。這是設(shè)計(jì)上的限制。所以我們需要另外找一個(gè)可以提供對(duì)本地二進(jìn)制文件的訪(fǎng)問(wèn)的COM對(duì)象。
ADO Stream對(duì)象(MDAC 2.5中的組件)提供了讀、寫(xiě)和管理二進(jìn)制流數(shù)據(jù)的手段。字節(jié)流的內(nèi)容可以是文本,或者二進(jìn)制數(shù)據(jù),并且沒(méi)有容量上的限制。在A(yíng)DO 2.5中,Microsoft對(duì)Stream對(duì)象的介紹不屬于A(yíng)DO對(duì)象結(jié)構(gòu)的任何一層,所以,我們無(wú)需捆綁即可使用該對(duì)象。
本文中使用Stream對(duì)象來(lái)訪(fǎng)問(wèn)文件內(nèi)容,再把內(nèi)容存入XML節(jié)點(diǎn)。
客戶(hù)端
以下示例代碼使用Stream和MSXML對(duì)象完成文件上傳動(dòng)作。
| <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 對(duì)象 var ado_stream = new ActiveXObject("ADODB.Stream"); // 創(chuàng)建包含默認(rèn)頭信息和根節(jié)點(diǎn)的 XML文檔 var xml_dom = new ActiveXObject("MSXML2.DOMDocument"); xml_dom.loadXML('<?xml version="1.0" ?> <root/>'); // 指定數(shù)據(jù)類(lèi)型 xml_dom.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes"); // 創(chuàng)建一個(gè)新節(jié)點(diǎn),設(shè)置其為二進(jìn)制數(shù)據(jù)節(jié)點(diǎn) var l_node1 = xml_dom.createElement("file1"); l_node1.dataType = "bin.base64"; // 打開(kāi)Stream對(duì)象,讀源文件 ado_stream.Type = 1; // 1=adTypeBinary ado_stream.Open(); ado_stream.LoadFromFile("c:tmpmyfile.doc"); // 將文件內(nèi)容存入XML節(jié)點(diǎn) l_node1.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll ado_stream.Close(); xml_dom.documentElement.appendChild(l_node1); // 可以創(chuàng)建多個(gè)二進(jìn)制節(jié)點(diǎn),一次上傳多個(gè)文件 // 把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中的空格之完全解說(shuō)在xml輸入文件中決定哪些空格是重要的,xslt處理器要看見(jiàn)這些空格結(jié)點(diǎn)。而決定的密鑰就是xml:space屬性。 只適合對(duì)xml文件結(jié)構(gòu)有一定了解的學(xué)者,不適合初學(xué)者。請(qǐng)按從上至下的順序閱讀
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開(kāi)發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語(yǔ)法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫(kù)
- WML教程之文本框控件Input
- 無(wú)線(xiàn)標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門(mén) - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測(cè)試模式 - XSL教程 - 5
Xml教程Rss訂閱編程教程搜索
Xml教程推薦
- 用XML VBS在A(yíng)SP中實(shí)現(xiàn)報(bào)表的打印
- XSL教程之匹配模式的學(xué)習(xí)
- XSL中實(shí)現(xiàn)HTML的表格自動(dòng)換行
- 基于關(guān)系型數(shù)據(jù)庫(kù)引擎的"XML"索引技術(shù)
- 在XsltArgumentList中調(diào)用xsl參數(shù)
- 網(wǎng)絡(luò)編程:如何生成XML數(shù)據(jù)
- XML時(shí)代我們擁有.Net
- 使用XSLT將XML數(shù)據(jù)轉(zhuǎn)換成HTML
- 使用xmldom在服務(wù)器端生成靜態(tài)html頁(yè)面
- 新興XML處理方法VTD-XML介紹
猜你也喜歡看這些
- 如何用XMLHTTP對(duì)象抓取網(wǎng)頁(yè)源代碼,拆分?jǐn)?shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)
- WML教程之文本框控件Input
- XML教程之XML 解析器
- 比較XMLTextReader和XmlDocument讀取XML文件
- 如何利用XMLHTTP無(wú)刷新添加數(shù)據(jù)之Get篇
- 一個(gè)用xslt樣式將xml解析為xhtml的類(lèi)TransformBinder(兼容FF和IE7.0)
- 2個(gè)讀寫(xiě)xml文件的小函數(shù)
- 如何編寫(xiě)結(jié)構(gòu)完整的XML文檔
- XML中顯示HTML的小技巧
- 如何為Exchange Server安裝WAP電子郵件網(wǎng)關(guān)
- 相關(guān)鏈接:
- 教程說(shuō)明:
Xml教程-使用XML技術(shù)上傳文件的例子(3)
。