学院首页>网络编程>ASP.NET>ASP.NET中实现直接从网页上下载文件,而不须引用文件URL来下载

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

作者: 来源: 添加时间:2006-5-21 19:44:25
函数名: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
站内搜索