且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

为什么我的下载不会结束?

更新时间:2023-02-01 19:26:15

这是我的理论。

将ContentLength添加到标题中。


Response.AppendHeader(" ContentLength",Filesize.tostirng())

让我知道它是否有效。

乔治。


Jerry Camel < RL ***** @ msn.com>在消息新闻中写道:uo **************** @ tk2msftngp13.phx.gbl ...

我以为我终于想出如何控制从我的页面下载。我遇到了大文件的问题,但经过大量研究后,我想出了以下代码。下载似乎没有问题,但永远不会终止。字节计数停止递增,但下载对话框永远不会关闭。 (直到我点击取消。)什么是保持下载正确结束?我非常接近完成这个应用程序 - 非常感谢任何帮助。谢谢。


Dim fStream As FileStream

Dim bytesToGo As Long

Dim bytesRead As Long

Dim byteBuffer(1048576)As Byte


fStream =新FileStream(" C:\DepotRoot \"& e.CommandArgument(),FileMode.Open,_

FileAccess.Read,FileShare.Read)

bytesToGo = fStream.Length

Response.BufferOutput = False

响应。清除()

Response.ClearContent()

Response.ClearHeaders()

Response.ContentType =" application / octet-stream"

Response.AppendHeader(" Content-Disposition"," attachment; filename ="""& _

dr(" FileName")& """")

Response.Flush()

while(bytesToGo> 0)

If(Response.IsClientConnected )然后

bytesRead = fStream.Read(byteBuffer,0,1048576)

Response.OutputStream.Write(byteBuffer,0,bytesRead)

Response.Flush()

bytesToGo - = bytesRead

Else

bytesToGo = -1

结束如果

结束时


Response.Flush()''这有点多余,但值得一试。

fStream.Close()''关闭服务器端的流。

Response.End()''这不应该告诉浏览器停止尝试下载吗?

再次感谢!


- Jerry
Here is the my theory.
Add ContentLength: to the header.

Response.AppendHeader("ContentLength", Filesize.tostirng() )
Let me know if it worked.
George.

"Jerry Camel" <rl*****@msn.com> wrote in message news:uo****************@tk2msftngp13.phx.gbl...
I thought I had finally figured out how to control the downloads from my page. I was having issues with large files, but after much research I came up with the following code. The download seems to proceed without issue, but never terminiates. The byte count stops incrementing, but the dowload dialog never closes. (Until I hit cancel.) What''s keeping the download from ending properly? I''m pretty close to finishing this app - any help is greatly appreciated. Thanks.

Dim fStream As FileStream
Dim bytesToGo As Long
Dim bytesRead As Long
Dim byteBuffer(1048576) As Byte

fStream = New FileStream("C:\DepotRoot\" & e.CommandArgument(), FileMode.Open, _
FileAccess.Read, FileShare.Read)
bytesToGo = fStream.Length
Response.BufferOutput = False
Response.Clear()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/octet-stream"
Response.AppendHeader("Content-Disposition", "attachment; filename=""" & _
dr("FileName") & """")
Response.Flush()
While (bytesToGo > 0)
If (Response.IsClientConnected) Then
bytesRead = fStream.Read(byteBuffer, 0, 1048576)
Response.OutputStream.Write(byteBuffer, 0, bytesRead)
Response.Flush()
bytesToGo -= bytesRead
Else
bytesToGo = -1
End If
End While

Response.Flush() ''This is kinda redundant, but it was worth a shot.
fStream.Close() ''Close the stream on the server side.
Response.End() ''Shouldn''t this tell the browser to stop trying to download?
Thanks again!

- Jerry


我很欣赏回应,但那并不是做到这一点。我希望它至少能解决我发布的关于下载进度的另一个项目,但它也没有这样做。还有其他想法吗?


Jerry

" George Ter-Saakov" &LT;无**** @ hotmail.com&GT;在留言新闻中写道:Oy **************** @ TK2MSFTNGP11.phx.gbl ...

这是我的理论。

将ContentLength添加到标题中。


Response.AppendHeader(" ContentLength",Filesize.tostirng())

如果有,请告诉我工作。

乔治。


Jerry Camel &LT; RL ***** @ msn.com&GT;在消息新闻中写道:uo **************** @ tk2msftngp13.phx.gbl ...

我以为我终于想出如何控制从我的页面下载。我遇到了大文件的问题,但经过大量研究后,我想出了以下代码。下载似乎没有问题,但永远不会终止。字节计数停止递增,但下载对话框永远不会关闭。 (直到我点击取消。)什么是保持下载正确结束?我非常接近完成这个应用程序 - 非常感谢任何帮助。谢谢。


Dim fStream As FileStream

Dim bytesToGo As Long

Dim bytesRead As Long

Dim byteBuffer(1048576)As Byte


fStream =新FileStream(" C:\DepotRoot \"& e.CommandArgument(),FileMode.Open,_

FileAccess.Read,FileShare.Read)

bytesToGo = fStream.Length

Response.BufferOutput = False

响应。清除()

Response.ClearContent()

Response.ClearHeaders()

Response.ContentType =" application / octet-stream"

Response.AppendHeader(" Content-Disposition"," attachment; filename ="""& _

dr(" FileName")& """")

Response.Flush()

while(bytesToGo> 0)

If(Response.IsClientConnected )然后

bytesRead = fStream.Read(byteBuffer,0,1048576)

Response.OutputStream.Write(byteBuffer,0,bytesRead)

Response.Flush()

bytesToGo - = bytesRead

Else

bytesToGo = -1

结束如果

结束时


Response.Flush()''这有点多余,但值得一试。

fStream.Close()''关闭服务器端的流。

Response.End()''这不应该告诉浏览器停止尝试下载吗?

再次感谢!


- Jerry
I appreciate the response, but that didn''t do it. I was hoping it would at least address another item I posted regarding download progress, but it didn''t do that either. Any other ideas?

Jerry
"George Ter-Saakov" <no****@hotmail.com> wrote in message news:Oy****************@TK2MSFTNGP11.phx.gbl...
Here is the my theory.
Add ContentLength: to the header.

Response.AppendHeader("ContentLength", Filesize.tostirng() )
Let me know if it worked.
George.

"Jerry Camel" <rl*****@msn.com> wrote in message news:uo****************@tk2msftngp13.phx.gbl...
I thought I had finally figured out how to control the downloads from my page. I was having issues with large files, but after much research I came up with the following code. The download seems to proceed without issue, but never terminiates. The byte count stops incrementing, but the dowload dialog never closes. (Until I hit cancel.) What''s keeping the download from ending properly? I''m pretty close to finishing this app - any help is greatly appreciated. Thanks.

Dim fStream As FileStream
Dim bytesToGo As Long
Dim bytesRead As Long
Dim byteBuffer(1048576) As Byte

fStream = New FileStream("C:\DepotRoot\" & e.CommandArgument(), FileMode.Open, _
FileAccess.Read, FileShare.Read)
bytesToGo = fStream.Length
Response.BufferOutput = False
Response.Clear()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/octet-stream"
Response.AppendHeader("Content-Disposition", "attachment; filename=""" & _
dr("FileName") & """")
Response.Flush()
While (bytesToGo > 0)
If (Response.IsClientConnected) Then
bytesRead = fStream.Read(byteBuffer, 0, 1048576)
Response.OutputStream.Write(byteBuffer, 0, bytesRead)
Response.Flush()
bytesToGo -= bytesRead
Else
bytesToGo = -1
End If
End While

Response.Flush() ''This is kinda redundant, but it was worth a shot.
fStream.Close() ''Close the stream on the server side.
Response.End() ''Shouldn''t this tell the browser to stop trying to download?
Thanks again!

- Jerry


仅供参考 - 这似乎只是一个大问题下载。较小的下载工作正常。

Jerry Camel &LT; RL ***** @ msn.com&GT;在消息新闻中写道:uo **************** @ tk2msftngp13.phx.gbl ...

我以为我终于想出如何控制从我的页面下载。我遇到了大文件的问题,但经过大量研究后,我想出了以下代码。下载似乎没有问题,但永远不会终止。字节计数停止递增,但下载对话框永远不会关闭。 (直到我点击取消。)什么是保持下载正确结束?我非常接近完成这个应用程序 - 非常感谢任何帮助。谢谢。


Dim fStream As FileStream

Dim bytesToGo As Long

Dim bytesRead As Long

Dim byteBuffer(1048576)As Byte


fStream =新FileStream(" C:\DepotRoot \"& e.CommandArgument(),FileMode.Open,_

FileAccess.Read,FileShare.Read)

bytesToGo = fStream.Length

Response.BufferOutput = False

响应。清除()

Response.ClearContent()

Response.ClearHeaders()

Response.ContentType =" application / octet-stream"

Response.AppendHeader(" Content-Disposition"," attachment; filename ="""& _

dr(" FileName")& """")

Response.Flush()

while(bytesToGo> 0)

If(Response.IsClientConnected )然后

bytesRead = fStream.Read(byteBuffer,0,1048576)

Response.OutputStream.Write(byteBuffer,0,bytesRead)

Response.Flush()

bytesToGo - = bytesRead

Else

bytesToGo = -1

结束如果

结束时


Response.Flush()''这有点多余,但值得一试。

fStream.Close()''关闭服务器端的流。

Response.End()''这不应该告诉浏览器停止尝试下载吗?

再次感谢!


- 杰瑞
FYI - This only seems to be a problem with larger downloads. The smaller downloads work just fine.
"Jerry Camel" <rl*****@msn.com> wrote in message news:uo****************@tk2msftngp13.phx.gbl...
I thought I had finally figured out how to control the downloads from my page. I was having issues with large files, but after much research I came up with the following code. The download seems to proceed without issue, but never terminiates. The byte count stops incrementing, but the dowload dialog never closes. (Until I hit cancel.) What''s keeping the download from ending properly? I''m pretty close to finishing this app - any help is greatly appreciated. Thanks.

Dim fStream As FileStream
Dim bytesToGo As Long
Dim bytesRead As Long
Dim byteBuffer(1048576) As Byte

fStream = New FileStream("C:\DepotRoot\" & e.CommandArgument(), FileMode.Open, _
FileAccess.Read, FileShare.Read)
bytesToGo = fStream.Length
Response.BufferOutput = False
Response.Clear()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/octet-stream"
Response.AppendHeader("Content-Disposition", "attachment; filename=""" & _
dr("FileName") & """")
Response.Flush()
While (bytesToGo > 0)
If (Response.IsClientConnected) Then
bytesRead = fStream.Read(byteBuffer, 0, 1048576)
Response.OutputStream.Write(byteBuffer, 0, bytesRead)
Response.Flush()
bytesToGo -= bytesRead
Else
bytesToGo = -1
End If
End While

Response.Flush() ''This is kinda redundant, but it was worth a shot.
fStream.Close() ''Close the stream on the server side.
Response.End() ''Shouldn''t this tell the browser to stop trying to download?
Thanks again!

- Jerry