Frage

Was ist der beste Weg, um zu implementieren, aus einer web-Seite ein download-Aktion mit asp.net 2.0?

Protokolldateien für eine Aktion erstellt werden, in ein Verzeichnis namens [Anwendung Root]/Logs.Ich habe den vollständigen Pfad und möchten eine Taste,, dass, wenn darauf geklickt wird, laden Sie die log-Datei auf dem IIS-server an die Benutzer von lokalen pc.

War es hilfreich?

Lösung

Wird diese Hilfe:

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

Antwort.TransmitFile ist die akzeptierte Möglichkeit, das senden großer Dateien, anstatt der Antwort.WriteFile.

Andere Tipps

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:

Der erste code

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

hat "inline;Anlage", d.h.zwei Werte für die Inhalte Verfügung.

Weiß nicht, Wann genau es angefangen hat, aber in Firefox nur der richtige Dateiname wurde nicht angezeigt.Die Datei download-box angezeigt wird mit den Namen der Webseite und deren Verlängerung (pagename.aspx).Nach dem download, wenn Sie es umbenennen zurück zu den eigentlichen Namen;- Datei erfolgreich geöffnet wird.

Wie pro diese Seite, es funktioniert auf First Come, First Served.Ändern Sie den Wert auf attachment nur das Problem gelöst.

PS:Ich bin mir nicht sicher, ob dies die beste Praxis, sondern das Problem behoben ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top