Following is the code which will help you to download the file from the server to the local machine
//To Get the physical Path of the file(me2.doc) string filepath = Server.MapPath("me2.doc");
// Create New instance of FileInfo class to get the properties of the file being downloaded FileInfo myfile = new FileInfo(filepath); // Checking if file exists if (myfile.Exists) { // Clear the content of the response Response.ClearContent(); // Add the file name and attachment, which will force the open/cancel/save dialog box to show, to the header Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name); // Add the file size into the response header Response.AddHeader("Content-Length", myfile.Length.ToString());
// Set the ContentType Response.ContentType = ReturnExtension(myfile.Extension.ToLower());
// Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead) Response.TransmitFile(myfile.FullName);
// End the response Response.End(); }
private string ReturnExtension(string fileExtension) { switch (fileExtension) { case ".htm": case ".html": case ".log": return "text/HTML"; case ".txt": return "text/plain"; case ".doc": return "application/ms-word"; case ".tiff": case ".tif": return "image/tiff"; case ".asf": return "video/x-ms-asf"; case ".avi": return "video/avi"; case ".zip": return "application/zip"; case ".xls": case ".csv": return "application/vnd.ms-excel"; case ".gif": return "image/gif"; case ".jpg": case "jpeg": return "image/jpeg"; case ".bmp": return "image/bmp"; case ".wav": return "audio/wav"; case ".mp3": return "audio/mpeg3"; case ".mpg": case "mpeg": return "video/mpeg"; case ".rtf": return "application/rtf"; case ".asp": return "text/asp"; case ".pdf": return "application/pdf"; case ".fdf": return "application/vnd.fdf"; case ".ppt": return "application/mspowerpoint"; case ".dwg": return "image/vnd.dwg"; case ".msg": return "application/msoutlook"; case ".xml": case ".sdxl": return "application/xml"; case ".xdp": return "application/vnd.adobe.xdp+xml"; default: return "application/octet-stream"; }
Please Note: If you want to bypass the Open/Save/Cancel dialog you just need to replace LINE1 by the below code
Response.AddHeader("Content-Disposition", "inline; filename=" + file.Name);
Response.TransmitFile VS Response.WriteFile: 1. TransmitFile: This method sends the file to the client without loading it to the Application memory on the server. It is the ideal way to use it if the file size being download is large. 2. WriteFile: This method loads the file being download to the server's memory before sending it to the client. If the file size is large, you might the ASPNET worker process might get restarted.
Hope this helps,Your comments and queries are welcome -- Thanks and Regards Meetu Choudhary
|
| Author: nazarml 01 Nov 2008 | Member Level: Silver Points : 2 |
hi Madam.
please solve my problem... i have upload file from Asp.Net into "C:/UploadFile/" location.
Now. i want to download file from uploaded directory. but this directory is not server Path
if u have any code pls send me
this is my messengers ID Yahoo nazar_ml@yahoo.com Google nazarmlcs@gmail.com
|
| Author: Meetu Choudhary 01 Nov 2008 | Member Level: Gold Points : 1 |
Nazarml
where you have have saved the file the location which you have given is from where u took the file but where u saved it and from where you want to download it plese tell me so that i can help you
++ Thnaks and Regards Meetu Choudhary
|
| Author: nazarml 02 Nov 2008 | Member Level: Silver Points : 1 |
dear madam Meetu Choudhary lot of thanks for your response
when i upload file i saved into "C:\upload_File\" i want to download file from above path.
How can do? but. I save asp project in "D:\Asp\upload-File\"
pls help me.
Regard Nazarml
|