客戶端
以下示例代碼使用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 < /BODY > < /HTML >
< SCRIPT LANGUAGE=JavaScript >
// 上傳函數(shù) function btn_send.onclick() { // 創(chuàng)建 ADO-stream 對象 var ado_stream = new ActiveXObject("ADODB.Stream");
// 創(chuàng)建包含默認(rèn)頭信息和根節(jié)點的 XML文檔 var xml_dom = new ActiveXObject("MSXML2.DOMDocument"); xml_dom.loadXML(' '); // 指定數(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:\\tmp\\myfile.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 >
|