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

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"
%>
...全文
47 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
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好像不能用在这里。
另外鼠标忙的问题应该和这个代码无关吧
看看你删除数据库的部分对不对

28,391

社区成员

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

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