客戶端
以下示例代碼使用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 >
// 上傳函數
function btn_send.onclick()
{
// 創建 ADO-stream 對象
var ado_stream = new ActiveXObject("ADODB.Stream");
// 創建包含默認頭信息和根節點的 XML文檔
var xml_dom = new ActiveXObject("MSXML2.DOMDocument");
xml_dom.loadXML('
');
// 指定數據類型
xml_dom.documentElement.setAttribute("XMLns:dt", "urn:schemas-microsoft-com:datatypes");
// 創建一個新節點,設置其為二進制數據節點
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: mpmyfile.doc");
// 將文件內容存入XML節點
l_node1.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll
ado_stream.Close();
XML_dom.documentElement.appendChild(l_node1);
// 可以創建多個二進制節點,一次上傳多個文件
// 把XML文檔發送到Web服務器
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
XMLhttp.open("POST","./file_recIEve.ASP",false);
xmlhttp.send(XML_dom);
// 顯示服務器返回的信息
div_message.innerHtml = XMLhttp.ResponseText;
}
< /SCRIPT >