privatevoid Page_Load(object sender, System.EventArgs e) { // retrieve the path of the file to download, and create // a FileInfo object to read its properties string path = Server.MapPath(Request.Params["File"]); System.IO.FileInfo file =new System.IO.FileInfo(path); // 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="+ file.Name); // add the header that specifies the file size, so that the browser // can show the download progress Response.AddHeader("Content-Length", file.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(file.FullName); // stop the execution of this page Response.End(); }