Wie sende ich eine Datei in HttpResponse?

8

In meiner Anwendung kann der Benutzer eine Datei herunterladen, nachdem er auf einen Link geklickt hat. Dokument ist PDF / RTF, das im Code generiert wird. Ich benutze:

%Vor%

Es funktioniert OK, aber ist das im Allgemeinen ein guter Weg? Warum wird Flush zweimal aufgerufen? Ich habe viele verschiedene Beispiele gefunden und dieses funktioniert gut, aber manchmal habe ich The remote host closed the connection. The error code is 0x80070057 error. Ich habe eine Lösung gefunden, die ich verwenden sollte

%Vor%

Wie sollte der gesamte Code aussehen?

    
jlp 05.05.2011, 09:48
quelle

2 Antworten

3

Hier ist der Code, den ich verwende. Es ruft überhaupt keinen Flush auf. Ich bin mir nicht sicher, ob es der richtige Weg ist, aber es funktioniert für mich.

%Vor%     
Chris Mullins 05.05.2011 12:50
quelle
2

Ich sehe nicht, warum Sie Flush() zweimal aufrufen sollten. Eins ist genug, nachdem BinaryWrite() aufgerufen hat.

Der erste Aufruf von Flush() sendet die Header an den Browser, einschließlich Content-Length , was zum Zeitpunkt des Aufrufs noch unbekannt ist - oder einfach falsch.

Außerdem würde ich vermeiden, End() aufzurufen, außer es ist absolut notwendig.

    
Dario Solera 05.05.2011 09:54
quelle

Tags und Links