- Open file within the browser
- Open "file download" dialog box
I used to use the Response.Write() method, but recently came across the Response.TransmitFile() method. This method directly writes the file to the HTTP response stream and saves you from hogging up memory on the server.
1) Open file within the browserResponse.ContentType = "application/pdf"; //write file to the browser without saving file in server memory Response.TransmitFile("c:\docs\pdfs\test1_1.pdf"); Response.End();2) Open "file download" dialog box
Response.ContentType = "application/pdf"; //add 'attachment' header to open 'file download' dialog box Response.AddHeader("content-disposition", "attachment; filename=test1_1.pdf"); //write file to the browser without saving file in server memory Response.TransmitFile("c:\docs\pdfs\test1_1.pdf"); Response.End();
Some other types of "write" methods that exist in the System.Web.HttpResponse class are
- BinaryWrite()- use this method to output a file that is stored in a Base64 string format
Response.BinaryWrite(Convert.FromBase64String(EncodedDocument));
- WriteFile()-use this method if you desire for the file to be stored in memory, or if the file is already in memory. This method is expensive because it stores the file object in memory, then transmits to the client.
- Write() -there are a few overloads for the type of objects that Write() can send to the client. It is a flexible method and TransmitFile() or BinaryWrite() may better fit your specific needs