头疼的问题,高手指教!!

appleboyallen 2002-05-16 06:16:19
加精

上次我在csdn上提了一个问题,关于软件下载的问题,有一个老兄给了我一段代码,我照着做了,果然可以下载,可是有一个问题:浏览器下载完后,鼠标一直处于”忙“状态,不知道在干啥,我让它下载完了以后刷新本页面,可是它就是”忙“,不知道怎么解决这个问题呢?我已经被它搞疯了,希望大家能够帮帮忙,一定给分!!谢谢!!!!
下边是源代码:
<%@ Language=VBScript %>
<%Response.Buffer=true%>
<%
......从数据库里读出文件名file_name
.......
'下面是下载部分
Const ForReading=1
Const TristateTrue=-1
Const FILE_TRANSFER_SIZE=16384
Function TransferFile(path, mimeType)
Dim objFileSystem, objFile, objStream
Dim char
Dim sent
send=0
TransferFile = True
set objFileSystem=server.CreateObject("scripting.filesystemobject")
Set objFile = objFileSystem.GetFile(path)
Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue)
Response.AddHeader "content-type", mimeType
Response.AddHeader "Content-Disposition","attachment;filename="&file_name
Response.AddHeader "content-length", objFile.Size
Do While Not objStream.AtEndOfStream
char = objStream.Read(1)
Response.BinaryWrite(char)
sent = sent + 1
If (sent MOD FILE_TRANSFER_SIZE) = 0 Then
Response.Flush
If Not Response.IsClientConnected Then
TransferFile = False
Exit Do
End If
End If
Loop
Response.Flush
If Not Response.IsClientConnected Then TransferFile = False
objStream.Close
Set objStream = Nothing
Set objFileSystem = Nothing
End Function

Dim mimeType, sucess
mimeType = "application/x-msdownload"
file_path=server.MapPath("software/" & file_name )
success = TransferFile(file_path, mimeType)
if success then
....成功则从数据库里删除用户的关于这项软件的记录
end if
Response.Redirect "download.asp"
%>
...全文
16 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
appleboyallen 2002-05-19
怎么让他下载后刷新本页面?
回复
appleboyallen 2002-05-19
对了,我试过了,是脚本超时,
谢谢
回复
tripofdream 2002-05-19
可能是脚本执行超时.
试试将Server.scripttimeout设置为比较大的值(单位为second)
回复
nickycheng 2002-05-19
含有这个函数的页面应该不会单独显示出来吧?它实际上就是生成了一个让浏览器可以下载的文件。

刷新有什么必要?
回复
appleboyallen 2002-05-18
不好意思,刚才没有把有错的一句说出来,是这一句
Response.AddHeader "Content-Disposition","attachment;filename="&file_name
谢谢大家了!!
回复
appleboyallen 2002-05-18
关于下载后鼠标处于“忙”的状态的问题,我已经找到原因了,是因为那一句
如果把它给删除,就正常了,可是现在又碰到了新问题,如果下载比较小的文件,比如10k,就很正常,可是如果下载4,5m的文件,就出现了 问题,当下载到了一半的时候,下载条就会一下子到头,显示下载完了,可是此时,只下载了一半,而且,也不会执行下载完后的数据库删除功能,不知道是 怎么回事,我的程序到底是什么地方出错了?
请大家帮帮忙啊!
回复
tripofdream 2002-05-18
在最后一句前加上Response.Flush试试.
回复
appleboyallen 2002-05-17
希望高手能帮帮我,分不够可以再加啊
回复
nickycheng 2002-05-17
up

我今天在www.osoon.com同学录下载自己班的留言记录(3MB)左右。
呵呵~下载完了同样出现了漏斗。巧合?我是没水平解决。

希望高手可以分析一下原因
回复
appleboyallen 2002-05-17
谁知道啊?
帮帮忙啊
回复
yzx_zyj 2002-05-17
Response.Redirect "download.asp" 是可以放在这的,
因为<%Response.Buffer=true%>

至于后面那个问题,没空试,帮你up
回复
BrightEye 2002-05-17
没做过,帮你up!!
回复
appleboyallen 2002-05-17
难道没有人知道吗?
回复
appleboyallen 2002-05-16
我基本上把所有可能出问题的地方都删了,还是不行,可能是那个函数有问题啊
谁能帮我????
回复
shadowkiss 2002-05-16
代码看不出什么问题,你先到别的机器上试试这段代码
回复
appleboyallen 2002-05-16
那该用在什么地方》
我把数据库部分删掉还是不行啊
是不是代码有问题?
回复
nickycheng 2002-05-16
response.redirect好像不能用在这里。
另外鼠标忙的问题应该和这个代码无关吧
看看你删除数据库的部分对不对
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2002-05-16 06:16
社区公告
暂无公告