downloadfilehandler.vb

来自「大文件上传组件」· VB 代码 · 共 37 行

VB
37
字号
Imports Microsoft.VisualBasic
Imports System.IO

Public Class DownloadFileHandler
    Implements IHttpHandler

    Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
        Get
            Return True
        End Get
    End Property

    Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
        Dim id As Integer = Integer.Parse(context.Request.QueryString("id"))

        Dim file As RepositoryFile = RepositoryFile.GetById(id)

        context.Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name)
        context.Response.AddHeader("Content-Length", file.Length.ToString())
        context.Response.ContentType = "application/octet-stream"

        Using dataStream As Stream = file.GetDataStream()
            Dim buffer As Byte() = New Byte(8192) {}

            Dim read As Integer

            Do
                read = dataStream.Read(buffer, 0, 8192)

                If read > 0 Then
                    context.Response.OutputStream.Write(buffer, 0, read)
                End If
            Loop While read > 0
        End Using
    End Sub
End Class

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?