2009-04-17 6 views
5

Was soll ich zum Schreiben einer Datei auf die Antwort verwenden? Es gibt zwei verschiedene Möglichkeiten, wie ich es sehe. Option eins ist die Datei in einen Stream zu lesen und schreiben dann die Bytes an den Browser mitBinaryWrite vs WriteFile

Response.BinaryWrite(new bytes[5]) 

nächste Option ist nur die Datei von der Systemdatei schreiben direkt mit Response.WriteFile. Irgendwelche Vorteile/Nachteile mit beiden Ansatz?

Edit: Korrigiert Tippfehler

+0

Bitte lesen Sie diese vor der Verwendung Response.TransmitFile: http://improve.dk/blog/2008/03/29/response-transmitfile-close-will-kill-your-application – Faisal

Antwort

4

Die andere Überlegung ist, ob dies eine Datei ist, die einmal geschrieben oder häufig. Wenn Sie diese Datei häufig schreiben, möchten Sie sie möglicherweise zwischenspeichern, daher ist Response.BinaryWrite am sinnvollsten. Wenn Sie es im Speicher haben, würde ich es nicht in das Dateisystem schreiben und Response.WriteFile verwenden

+0

Ja, einige der Dateien werden einmal pro Minute heruntergeladen. Die Leistung ist immer noch gut, aber Caching ist natürlich einer der Gründe! – mhenrixon

5

Response.TransmitFile wird bevorzugt, wenn Sie die Datei auf der Festplatte haben und mindestens asp.net 2.0 verwenden.

Response.WriteFile liest die gesamte Datei in den Speicher und schreibt die Datei in die Antwort. TransmitFile "Writes the specified file directly to an HTTP response output stream without buffering it in memory."

+0

Danke, ich wusste eigentlich nichts über die Transferdatei. Ich hatte meine Dateien meistens schon vorher in der Datenbank! – mhenrixon

Verwandte Themen