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();
}
Update:
Le code initial
Response.AddHeader("Content-Disposition", "inline;attachment; filename=" + fileInfo.Name);
a "inline; fixation" à savoir deux valeurs de disposition de contenu.
Je ne sais pas exactement quand il a commencé, mais dans Firefox seulement le nom de fichier approprié n'apparaissait pas. La boîte de téléchargement de fichier apparaît avec le nom de la page Web et son extension (pagename.aspx). Après le téléchargement, si vous le renommez au nom réel; le fichier s'ouvre avec succès.
Selon this page, il fonctionne sur Premier arrivé, premier servi Servir. La modification de la valeur à attachment
a seulement résolu le problème. PS: Je ne suis pas sûr que ce soit la meilleure pratique, mais le problème est résolu.
Pourriez-vous utiliser Response.TransmitFile (pour un petit fichier également? –