ASP.NET中实现直接从网页上下载文件,而不须引用文件URL来下载

函数名:ResponseFile
功能  :客户端从服务器端下载一个文件
返回值:返回True表示服务器响应成功,返回False表示失败
参数  :
        PageResponse      响应客户端的Response对象,用Page.Response引用
        DownloadFileName  客户端下载文件的文件名
        LocalFilePath      服务器端待下载文件的路径
        DownloadBuffer    服务器端读取文件的缓冲区大小,单位为KB
Public Function ResponseFile(ByRef PageResponse As HttpResponse, ByVal DownloadFileName As String, ByVal LocalFilePath As String, ByVal DownloadBuffer As Long) As Boolean
        Dim Reader As System.IO.FileStream
        Dim Buffer() As Byte
        Dim FileLength As Long
        Dim FileBuffer As Long = 1024 * DownloadBuffer
        Dim ReadCount As Long
        ReadCount = FileBuffer
        ReDim Buffer(ReadCount - 1)
        Try
                Reader = System.IO.File.OpenRead(LocalFilePath)
                FileLength = Reader.Length
                Try
                        PageResponse.Buffer = False
                        PageResponse.AddHeader("Connection", "Keep-Alive")
                        PageResponse.ContentType = "application/octet-stream"
                        PageResponse.AddHeader("Content-Disposition", "attachment;filename="  DownloadFileName)
                        PageResponse.AddHeader("Content-Length", FileLength.ToString)
                        While ReadCount = FileBuffer
                                ReadCount = Reader.Read(Buffer, 0, FileBuffer)
                                ReDim Preserve Buffer(ReadCount - 1)
                                PageResponse.BinaryWrite(Buffer)
                        End While
                        Response.End()
                Catch ex As Exception
                        Return False
                Finally
                        Reader.Close()
                End Try
        Catch ex As Exception
                Return False
        End Try
        Return True
End Function

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

实现Web文件的上传
创建基于ASP.NET的SMTP邮件服务
自定义控件中使用枚举类型的属性
asp.net中将大文件保存到MSSQL的image字段并实时显示进度信息
让Calendar在页面调用时才显示
直接用Response输出可以加批注的Excel
解释:ASP.NET 2.0 中的窗体身份验证
在Asp.Net中使用SmtpMail发送邮件的方法
asp.net(c#) 取得网卡mac地址
whats an assembly 什么是assembly