|
珞珈山水BBS →
电脑网络 →
程序人生 →
单文区文章阅读
|
| 单文区文章阅读 [返回] |
|---|
|
发信人: PowerQ (PowerQ), 信区: Programm 标 题: 请教一个Asp.net文件下载的问题 发信站: BBS 珞珈山水站 (Mon Nov 28 10:33:10 2005) 这是一个ASP.net支持断点续传的例子,但有点小问题如下: Dim iStream As System.IO.Stream Dim buffer(10240) As Byte Dim length As Int16 Dim dataToRead As Long Dim filepath As String = "D:\Setup Packet\MATLAB.ISO" Dim filename As String = System.IO.Path.GetFileName(filepath) iStream = New System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read) Response.Clear() dataToRead = iStream.Length Dim p As Long p = 0 If Request.Headers("Range") <> "" Then Response.StatusCode = 206 p = Long.Parse(Request.Headers("Range").Replace("bytes=", "").Re place("-", "")) End If If p <> 0 Then Response.AddHeader("Content-Range", "bytes " & p & "-" & dataToR ead - 1 & "/" & dataToRead & "") End If Response.AddHeader("Content-Length", (dataToRead - p).ToString()) Response.ContentType = "application/octet-stream" Response.AddHeader("Content-Disposition", "attachment; filename=" + Sy stem.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(filename))) iStream.Position = p dataToRead = dataToRead - p While dataToRead > 0 If Response.IsClientConnected Then '为社么客户端浏览器在下载了一半 后点击取消,服务器在这里就停止了 ? length = iStream.Read(buffer, 0, 10240) Response.OutputStream.Write(buffer, 0, length) Response.Flush() dataToRead = dataToRead - length Else dataToRead = -1 End If End While iStream.Close() Response.End() 请高手指点啊 -- ※ 修改:·PowerQ 於 Nov 28 10:35:18 2005 修改本文·[FROM: 202.114.102.*] ※ 来源:·珞珈山水BBS站 http://bbs.whu.edu.cn·[FROM: 202.114.102.*] |
| [返回单文区目录] |
|
|