' Open the standard dialog to download a file located on the server
' whose virtual path is passed as an argument. This routine is useful when
' you want to download a file that is otherwise processed by IIS.
' This routine must be included in an asp.net page, so that it can access
' the Server and Response objects.
Sub DownloadFile(ByVal virtualPath As String)
' retrieve the physical path of the file to download, and create
' a FileInfo object to read its properties
Dim FilePath As String = Server.MapPath(virtualPath)
Dim TargetFile As New System.IO.FileInfo(FilePath)
' clear the current output content from the buffer
' add the header that specifies the default filename for the Download/
' SaveAs dialog
Response.AddHeader("Content-Disposition", "attachment; filename=" + _
' add the header that specifies the file size, so that the browser
' can show the download progress
' specify that the response is a stream that cannot be read by the
' client and must be downloaded
Response.ContentType = "application/octet-stream"
' send the file stream to the client
' stop the execution of this page