将一个大的文件分批传到客户端

zhwzhwid 2003-08-22 11:39:25
本人需要将一个大的文件(如2M word文挡)经IIS传到客户端(IE)后经javascript处理保存到本地客户端,有哪位高手知道编程方法?是否必须分成n段传输?谢谢!
...全文
22 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhwzhwid 2003-08-23
  • 打赏
  • 举报
回复
非常感谢大家,尤其是awaysrain.谢谢你!
yonghengdizhen 2003-08-22
  • 打赏
  • 举报
回复
不必分段传输.
只要解决客户端安全设置就可以了.
Primer2002cn 2003-08-22
  • 打赏
  • 举报
回复
mark
dicklee1214 2003-08-22
  • 打赏
  • 举报
回复
mark
awaysrain 2003-08-22
  • 打赏
  • 举报
回复
<script language="vbscript">
Set x=CreateObject("Microsoft.xmlhttp")
x.Open "GET","http://xh/temp/aaa.doc",False
x.Send
Set mstream=CreateObject("Adodb.Stream")
mstream.Type = 1
mstream.Open
mstream.Write x.responseBody
mstream.SaveToFile "c:\temp.doc"
</script>
awaysrain 2003-08-22
  • 打赏
  • 举报
回复
<div id=div1>正在保存数据……</div>
<script>
var xmlhttp=null;
var xmlhttp = new ActiveXObject("Microsoft.xmlhttp");
xmlhttp.Open("GET", "http://xh/temp/bbb.doc", false);
xmlhttp.onreadystatechange= HandleStateChange;
xmlhttp.Send();

function HandleStateChange()
{
if (xmlhttp.readyState == 4)
{
var mstream=new ActiveXObject("Adodb.Stream")
mstream.Type = 1;
mstream.Open()
mstream.Write(xmlhttp.responseBody)
mstream.SaveToFile("c:\\bbb.doc")
div1.innerText="保存完成"
}
}
</script>
awaysrain 2003-08-22
  • 打赏
  • 举报
回复
[Script]
Script Syntax
oXMLHttpRequest.onreadystatechange = funcMyHandler;
Example
The following script example specifies the handler HandleStateChange gets called when an IXMLHTTPRequest object's readyState property changes. A button on a page is enabled when the readyState property indicates that all data has been received (readystate == 4).

<script>
var xmlhttp=null;
function PostOrder(xmldoc)
{
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
xmlhttp.Open("POST", "http://myserver/orders/processorder.asp", false);
xmlhttp.onreadystatechange= HandleStateChange;
xmlhttp.Send(xmldoc);
myButton.disabled = true;
}
function HandleStateChange()
{
if (xmlhttp.readyState == 4)
{
myButton.disabled = false;
alert("Result = " + xmlhttp.responseXML.xml);
}
}
</script>
In Microsoft Visual Basic® Scripting Edition (VBScript), you can get a function pointer using the syntax getRef("HandleStateChange").
yonghengdizhen 2003-08-22
  • 打赏
  • 举报
回复
必须用同步发送请求..
如果是异步则必须注册回掉函数并在readystate=4时获取响应数据
zhwzhwid 2003-08-22
  • 打赏
  • 举报
回复
to awaystrain:

<script language="vbscript">
Set x=CreateObject("Microsoft.xmlhttp")
x.Open "GET","http://xh/temp/aaa.doc",False
x.Send
Set mstream=CreateObject("Adodb.Stream")
mstream.Type = 1
mstream.Open
mstream.Write x.responseBody 此行出错,提示“完成该操作所需的数据还不可用”
mstream.SaveToFile "c:\temp.doc"
</script>

请指教!谢谢。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧