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