Knud: content-type für csv-Dateien

Beitrag lesen

Hallo,

header("Content-Type: application/csv-tab-delimited-table");

ja, solche merkwürdigen Konstrukte kenne ich auch. Wo hast Du diesen Type denn hergeklaut, und warum glaubst Du, er sei sinnvoll? Wie soll sich der Client Deiner Meinung nach verhalten?

Diese Type hab ich bei meiner Internet-Recherche gefunden, als ich auf der Suche nach Beispielen oder Listen für Typen war.
http://www.google.de/search?q=content-type+header+disposition+csv+&ie=UTF-8&oe=UTF-8&hl=de&btnG=Google-Suche&meta=lr%3Dlang_de

Das verträgt der IE anstandlos

Das ist eher ein Indiz dafür, dass es falsch ist.

*lächel*
Der scheints aber tatsächlich irgendwie richtig zu verstehen.
Im 'Speichern unter'-Dialog steht bei Name der korrekte (von mir vorgegebene) Name und bei Dateityp 'Microsoft Excel Comma Separated Values File'
Beim Netscape steht 'telefonliste.csv.php3' und als Dateityp '.php3'

Der Content-Type hat _nichts_ mit irgendwelchen Namen zu tun. Gar nichts. Wenn Du empfehlen willst, unter welchem Namen der Client - falls - die Ressource abspeichern möchte, dann verwende einen geeigneten Content-Disposition-Header.

Würd ich gerne, aber genau das ist meine Frage. Wie müsste ich die header-Geschichten definieren, damits geeignet wird/bleibt.
Hab dazu leider nichts gefunden, was mir weitergeholfen hätte.

Hab auch die folgende Geschichte probiert:
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: inline; filename="".$save_as_name.""");

Dann bietet mir Netscape telefonliste.csv.xls an mit Type .xls

Bei header("Content-Type: text/plain");
öffnet mir Netscape die Datei direkt und bietet kein 'Speichern unter' an.

header("Content-Type: text/csv");

ergibt wieder telefonliste.csv.php3

Hmm, irgendwas muss es doch geben?!

Gruß,

Knud

Kann ich dem Netscape nicht auch vorschreiben,

Nein. Du bewegst Dich im Internet, da lässt sich nichts "vorschreiben" oder "erzwingen". Du kannst nur empfehlen.

Meinte das auch nur im Sinne von, dass Netscape meinen Vorschlag anzeigt und der Benutzer lediglich nur noch den Namen bestätigen müsste. (Sonst muss ich dem Anwender erst mühsam erklären, dass er auf die Endung achten und ändern muss.)