2010-10-07

[Asp.Net]網頁上下載虛擬目錄外檔案

需求:在web的系統上做查詢log檔並下載。
這些檔案通常都被放在虛擬目錄以外的資料夾裡,以下是讀取該路徑底下的檔案下載的方式。
注意:該按鈕不可被UpdatePanel包住,否則會出現錯誤訊息。

    Private Sub DownLoadFile(ByVal parFilePath As String)
        '取得檔案名稱
        Dim FileName As String = FilePath.Split("\")(FilePath.Split("\").Length - 1)
     
        '傳入實體檔案路徑
        Dim fr As New FileStream(parFilePath, FileMode.Open)
        Dim buf As Byte() = New Byte(fr.Length) {}
        fr.Read(buf, 0, Convert.ToInt32(fr.Length))
        fr.Close()
        fr.Dispose()

        '下載檔案
        Response.Clear()
        Response.ClearHeaders()
        Response.Buffer = True
        Response.AddHeader("content-disposition", "attachment; filename=" + FileName)
        Response.BinaryWrite(buf)
        Response.End()
    End Sub

沒有留言:

張貼留言