客户端
以下示例代码使用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:\\tmp\\myfile.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 >
|