http://forums.asp.net/p/1481083/3457332.aspx
string filename = @"Specify the file path in the server over here....";
FileInfo fileInfo = new FileInfo(filename);
if (fileInfo.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Flush();
Response.TransmitFile(fileInfo.FullName);
Response.End();
}
Actualización:
El código inicial
Response.AddHeader("Content-Disposition", "inline;attachment; filename=" + fileInfo.Name);
tiene "inline; apego" es decir, dos valores para la disposición de contenido.
No sé exactamente cuándo comenzó, pero en Firefox solo no aparecía el nombre de archivo correcto. El cuadro de descarga de archivos aparece con el nombre de la página web y su extensión (pagename.aspx). Después de la descarga, si cambia el nombre al nombre real; el archivo se abre con éxito
Según this page, funciona en Primero en llegar sirve base. Cambiar el valor a attachment
solo resolvió el problema.
PD: No estoy seguro de si esta es la mejor práctica pero el problema está resuelto.
¿Usaría Response.TransmitFile (también para un archivo pequeño? –