<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 version="1.0" ?> <root/>');
   // 指定数据类型
   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> 
服务器端    以下代码使用相同的对象提供服务器端的上传处理功能。<%@ LANGUAGE=VBScript%>
<% Option Explicit
   Response.Expires = 0 
   
   ' 定义变量和对象。
   dim ado_stream
   dim xml_dom
   dim xml_file1   ' 创建 Stream 对象
   set ado_stream = Server.CreateObject("ADODB.Stream")
   ' 从Request对象创建 XMLDOM对象
   set xml_dom = Server.CreateObject("MSXML2.DOMDocument")
   xml_dom.load(request)
   ' 读出包含二进制数据的节点
   set xml_file1 = xml_dom.selectSingleNode("root/file1")   ' 打开Stream对象,把数据存入其中  
   ado_stream.Type = 1  ' 1=adTypeBinary 
   ado_stream.open 
   ado_stream.Write xml_file1.nodeTypedValue
   ' 文件存盘
   ado_stream.SaveToFile "c:\tmp\upload1.doc",2  ' 2=adSaveCreateOverWrite 
   ado_stream.close   ' 销毁对象  
   set ado_stream = Nothing 
   set xml_dom = Nothing
   ' 向浏览器返回信息
   Response.Write "Upload successful!"
%>    也可以使用Stream对象把数据放到数据库的BLOB型字段中。

解决方案 »

  1.   

    我不是说传送文件,而是说获取OLE内的文件内容,至于传送我已经说了,用XMLHTTP协议,况且传送的方法也没有必要那么麻烦吧。
      

  2.   

    "把前端的OLE内的Office文档内容传送给后端",?
    后端是什么,服务器吗?
    给你一个建议:用页面调用word编辑文档,通过同步放入到页面上的编辑框中。然后再把编辑框中的内容发送到服务器。
    这种做法你可以接受的话就到,问题就简化为在页面上调用word,并同步word编辑的文档。那你就到 http://whiteland.d2g.com/cgi-bin/topic.cgi?forum=6&topic=1&show= 上面去看看吧
      

  3.   

    这种方法不行,我想在浏览器中编辑已存在Excel文件(从Web服务器中取出),再把编辑完的Excel文件传送到Web服务器,这个过程不需客户端保存文件。