客户端
以下示例代码使用stream和msxml对象完成文件上传动作。
< html >
< head >< title >file send< /title >< /head >
< body >
< input id=btn_send name="btn_send" type=button &#118alue="file send" >
< div id=div_message >ready
< /body >
< /html >
< script language=&#106avascript >
/ 上传函数
function btn_send.&#111nclick()
{
/ 创建 ado-stream 对象
var ado_stream = new activexobject("adodb.stream");
/ 创建包含默认头信息和根节点的 xml文档
var xml_dom = new activexobject("msxml2.domdocument");
xml_dom.loadxml('<@xml version="1.0" @>
/ 指定数据类型
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.nodetyped&#118alue = 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 >