Question

Quelle est la meilleure façon de mettre en œuvre, à partir d'une page Web, une action de téléchargement à l'aide d'asp.net 2.0 ?

Les fichiers journaux d'une action sont créés dans un répertoire appelé [Application Root]/Logs.J'ai le chemin complet et je souhaite fournir un bouton qui, une fois cliqué, téléchargera le fichier journal du serveur IIS sur l'ordinateur local de l'utilisateur.

Était-ce utile?

La solution

Est-ce que cela aide:

http://www.west-wind.com/weblog/posts/76293.aspx

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment; filename=logfile.txt");
Response.TransmitFile( Server.MapPath("~/logfile.txt") );
Response.End();

Response.TransmitFile est le moyen accepté pour envoyer des fichiers volumineux, au lieu de Response.WriteFile.

Autres conseils

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();
}


Mise à jour:

Le code initial

Response.AddHeader("Content-Disposition", "inline;attachment; filename=" + fileInfo.Name);

a "en ligne; pièce jointe", c'est-à-diredeux valeurs pour la disposition du contenu.

Je ne sais pas quand exactement ça a commencé, mais dans Firefox seulement le nom de fichier correct n'apparaissait pas.La boîte de téléchargement du fichier apparaît avec le nom de la page Web et son extension (nom de la page.aspx).Après le téléchargement, si vous le renommez avec son nom réel ;le fichier s'ouvre avec succès.

Selon cette page, il fonctionne sur Le principe du premier arrivé, premier servi.Changer la valeur en attachment seulement résolu le problème.

PS :Je ne sais pas si c'est la meilleure pratique mais le problème est résolu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top