Knud: content-type für csv-Dateien

Hallo,

ich möchte gerne einige Daten aus Tabellen in eine CSV-Datei exportieren.
Das klappt alles auch soweit und so gut, nur hängt mit der Netscape immer noch seine scheinbar bevorzugte Endung dran. Mit dem IE läufts mal wieder problemlos.

So sieht meine Header-Definition aus:

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

Das verträgt der IE anstandlos aber der Netscape (Ver. 6 und 7) hängen da noch ein .php dran und ich muss den Namen wieder von Hand ändern.

Kann ich dem Netscape nicht auch vorschreiben, dass er meinen Namen akzeptiert, egal was für eine Endung meine exportierte Datei bekommen soll?

Gruß und Dank,

Knud

  1. Hi,

    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?

    Das verträgt der IE anstandlos

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

    aber der Netscape (Ver. 6 und 7) hängen da noch ein .php dran

    Huh? Heißt es dann "application/csv-tab-delimited-table.php" oder wie?

    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.

    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.

    Cheatah

    1. 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.)