406 Stimmen

Antwort Inhaltstyp als CSV

Ich muss eine CSV-Datei als HTTP-Antwort senden. Wie kann ich die Ausgabeantwort als CSV-Format festlegen?

Das funktioniert nicht:

Response.ContentType = "application/CSV";

15voto

Einfach so verwenden

Response.Clear();
Response.ContentType = "application/CSV";
Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\"");
Response.Write(t.ToString());
Response.End();

5voto

Rob Church Punkte 6493

In ASP.net MVC können Sie eine FileContentResult und die File Methode:

public FileContentResult DownloadManifest() {
    byte[] csvData = getCsvData();
    return File(csvData, "text/csv", "filename.csv");
}

4voto

Wookie Punkte 31

Ich habe festgestellt, dass das Problem mit dem IE darin besteht, dass er die zurückgesendeten Daten ausspäht und sich seine eigene Meinung über den Inhaltstyp bildet, von dem er glaubt, er sei gesendet worden. Dies führt zu einer Reihe von Nebeneffekten, wie z.B. dass bei Textdateien immer ein saveAs-Dialog geöffnet wird, weil die Daten komprimiert übertragen werden. Die Lösung lautet (im php-Code)......

header('X-Content-Type-Options: nosniff');

2voto

Jaider Punkte 13198

Ich schlage vor, ein '/'-Zeichen vor 'myfilename.cvs' einzufügen.

Response.AddHeader("Content-Disposition", "attachment;filename=/myfilename.csv");

Ich hoffe, Sie erzielen bessere Ergebnisse.

1voto

Die oben beschriebene Einstellung des Inhaltstyps und der Inhaltsdisposition führt bei verschiedenen Browsern zu sehr unterschiedlichen Ergebnissen:

IE8: Dialogfeld "Speichern unter" wie gewünscht und Excel als Standardanwendung. 100 % gut.

Firefox: Das Dialogfeld "Speichern unter" wird zwar angezeigt, aber Firefox hat keine Ahnung, dass es sich um ein Arbeitsblatt handelt. Schlägt vor, es mit Visual Studio zu öffnen! 50% gut

Chrome: Die Hinweise werden vollständig ignoriert. Die CSV-Daten werden im Browser angezeigt. 0% gut.

Natürlich beziehe ich mich in all diesen Fällen auf die Browser, so wie sie ausgeliefert werden, ohne Anpassung der Mime/Application Mappings.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X