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

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

'函数名: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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航