<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型字段中。
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型字段中。
解决方案 »
- google map api v3 文字地标(labeledmarker)如何实现
- 关于JScript.Encode
- JS如何将滚动条滚动到合适的位置显示指定的对象?
- @ @ @ @ @如何控制一个TABLE显示跟隐藏呢???
- 有两个submit按钮,如何回车后提交默认按钮
- 谁有可以对文本框进行编辑的程序
- 怎么样用js刷新页面
- ie6.0中框架网页无法响应onunload事件,怎么办?
- 对于JS控件的一点想法,各位捧场!
- 能不能当window.open()打开页面时,被打开页面不点击,不按键就自动提交一个表单?
- 如何在CE3.0中实现页面中嵌入另一页?(CE3不支持IFrame,document对象)
- javascript:void(0)的含义?
后端是什么,服务器吗?
给你一个建议:用页面调用word编辑文档,通过同步放入到页面上的编辑框中。然后再把编辑框中的内容发送到服务器。
这种做法你可以接受的话就到,问题就简化为在页面上调用word,并同步word编辑的文档。那你就到 http://whiteland.d2g.com/cgi-bin/topic.cgi?forum=6&topic=1&show= 上面去看看吧