Response.AddHeader("Content-Disposition", "inline; filename=" + file.Name);
instead of
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Complete Code:
// Page-Load
protected void Page_Load(object sender, EventArgs e)
{
DownloadFile();
}
// File Download Function
private void DownloadFile()
{
string filepath = Server.MapPath("samplefile.doc");
FileInfo file = new FileInfo(filepath);
if (file.Exists)
{
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
string fExtn = GetFileExtension(file.Extension.ToLower());
Response.ContentType = fExtn;
Response.TransmitFile(file.FullName);
Response.End();
}
}
// Gets File Extension
private string GetFileExtension(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";
}
}
Response.TransmitFile() vs Response.WriteFile()
TransmitFile() method sends the file to the client without loading it to the application memory on the server. So, It is ideal to use for large files.
WriteFile() method loads the file being download to the server's memory before sending it to the client. It is ideal for small and medium size files.
No comments:
Post a Comment