xmlhttp上传 www.captainhostel.com.cn/xmlhttp_form.zip http://www.blueidea.com/bbs/NewsDetail.asp?id=880985 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用input type=file怎么取的数据? 此代码不可通过服务器运行。请保存为本地htm文件,可将本地文件发送的服务器<title>动态加载文件</title><form name=form><input type=file name=file><input type=button value=装入 onClick="document.frames.xxx.location = document.form.file.value"><input type=button value=提交 onClick="up()"><textarea name=text cols=60 rows=10></textarea><iframe name=xxx src="" style="display:none" onLoad="document.form.text.value = document.frames.xxx.document.body.innerText"></iframe></form><script>function saveXML(url,v) { var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP"); xmlHTTP.open("POST",url,false); xmlHTTP.send(v); var s = xmlHTTP.responseText; if(xmlHTTP.responseText.indexOf("Error:")!=-1) { alert(xmlHTTP.responseText); } alert(s);}function up() { saveXML("http://localhost/test.php",document.form.text.value);}</script> 客户端以下示例代码使用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</DIV></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 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=adReadAllado_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 ExplicitResponse.Expires = 0 ' 定义变量和对象。dim ado_streamdim xml_domdim 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型字段中。使用该方法的益处不引起页面转换。不需要专用组件。可同时上传多个文件。这段程序是纯脚本写成的,可以很容易的插入到其他代码中,而不需要任何HTML对象的配合。还可以把这个逻辑在任何支持COM标准的语言中实现。系统安全考虑该方法只能使用于内部网络,因为它需要IE5的安全级别设置为“低”。必须:允许脚本和ActiveX对象。该设置允许浏览器执行类似 "myobj = new activexobject(...)"的 JScript语句;必须允许穿越域访问数据源。这个设置允许在客户端使用Stream对象。还必须在服务器和客户端都安装MS XML DOM 3.0 和MDAC 2.5 。 Java程序中解析js文件提示"Request" is not defined JS跨域访问的问题 寻找一个可以动态给父节点添加子节点的树形的Demo javascript 生成动态表格 怎么判断收藏夹中是否已收录了某个网站(用javascript实现)? 字符转化为小数的方法 刚才忘了给分,请看看这个问题 (急啊)如何屏蔽后退键,、?还有刷新键? 在线等!过年多放点分! 类似百度图片搜索结果页的布局怎么实现 特殊要求 请问关于radio按钮,急?谢谢了
请保存为本地htm文件,可将本地文件发送的服务器<title>动态加载文件</title>
<form name=form>
<input type=file name=file>
<input type=button value=装入 onClick="document.frames.xxx.location = document.form.file.value">
<input type=button value=提交 onClick="up()">
<textarea name=text cols=60 rows=10></textarea>
<iframe name=xxx src="" style="display:none" onLoad="document.form.text.value = document.frames.xxx.document.body.innerText"></iframe>
</form><script>
function saveXML(url,v) {
var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
xmlHTTP.open("POST",url,false); xmlHTTP.send(v);
var s = xmlHTTP.responseText;
if(xmlHTTP.responseText.indexOf("Error:")!=-1) {
alert(xmlHTTP.responseText);
}
alert(s);
}
function up() {
saveXML("http://localhost/test.php",document.form.text.value);
}
</script>
<HEAD><TITLE>File Send</TITLE></HEAD>
<BODY>
<INPUT id=btn_send name="btn_send" type=button value="FILE SEND">
<DIV id=div_message>Ready</DIV>
</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 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型字段中。使用该方法的益处不引起页面转换。
不需要专用组件。
可同时上传多个文件。
这段程序是纯脚本写成的,可以很容易的插入到其他代码中,而不需要任何HTML对象的配合。还可以把这个逻辑在任何支持COM标准的语言中实现。系统安全考虑该方法只能使用于内部网络,因为它需要IE5的安全级别设置为“低”。必须:允许脚本和ActiveX对象。该设置允许浏览器执行类似 "myobj = new activexobject(...)"的 JScript语句;
必须允许穿越域访问数据源。这个设置允许在客户端使用Stream对象。还必须在服务器和客户端都安装MS XML DOM 3.0 和MDAC 2.5 。