In PHP ist es möglich, eine Datei an den Browser zurückzusenden, indem sie mit dem richtigen Header ausgegeben wird. Sie müssen keine vorherige Kopie auf dem Server speichern.
Wenn ich also eine Menge Daten habe, möchte ich als Excel-Datei zurückkehren - wie kann ich die Datei nach dem Erstellen der Datenstruktur mit OpenXML dem Benutzer bereitstellen, ohne sie vorher auf dem Server zu speichern?
Schreiben Sie Ihre Daten in einen Stream und geben Sie sie von Ihrer Controller-Aktionsmethode in FileStreamResult , indem Sie die Eigenschaften FileStream
, ContentType
und FileDownloadName
festlegen.
Aktualisierung: Eine Abkürzung dafür ist die Controller.File () Methode.
%Vor%Es ist eigentlich ziemlich einfach. In Ihrem Controller können Sie eine Aktion wie folgt ausführen:
%Vor%Der Benutzer erhält ein Dialogfeld mit der Frage, ob er die Datei öffnen oder speichern möchte.
Sie können den Inhalt Ihrer dynamisch generierten Datei in einem MemoryStream
-Objekt speichern. Wenn Sie eine Datei zurückgeben, können Sie mit der Methode GetBuffer()
von MemoryStream ein Array von Bytes als ersten Parameter übergeben. Setzen Sie dann die Parameter ContentType
und FileDownloadName
.
Grüße
Tags und Links asp.net-mvc-3