asp如何判断用户下载一个文件己下载完毕

6楼
加一层判断, 如果 因为 Response.IsClientConnected 取消(值是false),中断下载,就不执行相应下载计数,如果是正常传输完成,就执行下载完成的代码
7楼
还是不行。是不是输出头那边有问题!![P]
[/P][P][LINE-HEIGHT=28px][FACE=arial][BGCOLOR=rgb(255, 255, 255)][SIZE=16px]Response.AddHeader "Content-Disposition","attachment;filename=" & FileName[/SIZE][/BGCOLOR][/FACE][/LINE-HEIGHT][/P]
8楼
全部代码重写
Do while intFilelength > 0 and Response.IsClientConnected = true
            Response.BinaryWrite S.Read(512*1024)
            intFilelength = intFilelength - 512*1024
        Loop
改成
dim downfailed : downfailed=0
Do while intFilelength > 0
if  Response.IsClientConnected = false then
执行失败的语句
downfailed = 1
exit do
end if
            Response.BinaryWrite S.Read(512*1024)
            intFilelength = intFilelength - 512*1024
        Loop
if downfailed = 1 then
执行下载没完全的语句
else
执行下载完全的语句
end if
9楼
[P]还是不行。我总觉得这个思路是错的。[/P][P]当用户点下载时,弹出下载保存对话框之前,用户是没有中断的。所以downfailed肯定是会=0的,从而就会执行了后面的代码。接下来用户取消下载,这个行为并没有反馈回去。[/P][P] [/P][P] [/P]
[upload=14975,0]QQ图片20140220131921.jpg[/upload]
10楼
你说的对,用户没有真的取消前(换页了或按了下载取消),浏览器本来就是自动一直下载的。
也就是文件已经完全下载至本地了,实际上就是下载成功了。

对于小的文件一般是秒下载完成了,不会有下载失败的情况。没必要这么纠结
但特别大的文件,只要客户端没下载完,就能判断出来实际情况。
11楼
[P]不行啊,我特意试了一个16M的文件,点下载后,在弹出的保存对话框中点“取消”,我发现下载量也更新了(就是后面的代码执行了)[/P][P] [/P][P][URL=http://123564.com/T25IdyNdLw.html]http://123564.com/T25IdyNdLw.html[/URL]  你可以试试。[/P]

电脑版 Page created in 0.0332 seconds with 2 queries.