Download Example #1
This routine is useful when you want to download a file that is otherwise processed by IIS.
void DownloadFile(string virtualPath)
{
// retrieve the physical path of the file to download, and create
// a FileInfo object to read its properties
string filePath = Server.MapPath(virtualPath);
System.IO.FileInfo targetFile = new System.IO.FileInfo(filePath);
// clear the current output content from the buffer
Response.Clear();
// add the header that specifies the default filename for
// the Download/SaveAs dialog
Response.AddHeader("Content-Disposition", "attachment; filename=" + targetFile.Name);
// add the header that specifies the file size, so that the browser
// can show the download progress
Response.AddHeader("Content-Length", targetFile.Length.ToString());
// 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
Response.WriteFile(targetFile.FullName);
// stop the execution of this page
Response.End();
}