phpbar.de logo

Mailinglisten-Archive

[php] Download & XLS-Dateien

[php] Download & XLS-Dateien

Ulrich Babiak ubabiak_(at)_netcologne.de
Tue, 13 Jul 1999 19:26:20 +0200


Hallo,

 
> bastel gerade an einem Download-Script. Da ich (klar :-) counten will,

Soso, "counten" - warum nicht einfach mitzaehlen ....

> Datei). Bei Zip-Files, pdfs etc. funzts prima. Wenn ich aber bspw. eine
> xls-Datei habe, zeigt der Browser nur unverständliche Zeichen an. Also
> hab' ich mich mal mit MIME-Types beschäftigt (RFC 2046, 2045). Ein
> Header("Content-type: application/octet-stream\n"); bringt auch nix. hmm.

Was beim Abruf einer Datei via Browser passiert, haengt von 2 Faktoren ab:

1) Serverkonfiguration:
Der Server muss den richtigen Content-Type vorausschicken.
Kennt er eine Endung nicht, wird standardmaessig meist text/plain
angenommen - ungeeignet fuer Excel und sonstige Binaerdateien.
2) Browserkonfiguration:
Je nach Browser wird anhand des vom Server angekuendigten
Content-Types (korrekt) oder anhand der Dateiendung (doof) entschieden,
was mit der Datei passiert: Anzeige im Browser oder Aufruf eines
Plugins.

Was Du beschreibst, deutet darauf hin, dass Dein Server zip und
pdf "kennt" und deshalb richtig sendet, xls aber nicht. (Zu pruefen
uebrigens mit lynx -head www.server.de/pfad/datei.xls  
- lynx gibts auch fuer Win32 und man braucht ihn zum Debuggen staendig;
also installieren und lynx --help aufrufen!)
Der Server muss entweder application/octet-stream oder
den Excel-spezifischen MIME-Type auswerfen.

Wenn Du auf die Serverkonfiguration keinen Einfluss hast, kannst
Du erst mit Header("bla") den Typ setzen, und dann direkt die 
Datei mit php binaer durchreichen (also keinen Umweg ueber Location: .... ).
Vorzuziehen ist aber in jedem Fall eine saubere Konfiguration
des Servers.



Mit freundlichen Gruessen,

Ulrich Babiak

--
Ulrich Babiak              ubabiak_(at)_netcologne.de
Netcologne GmbH            http://www.netcologne.de
0221/2222-236


php::bar PHP Wiki   -   Listenarchive