phpbar.de logo

Mailinglisten-Archive

[php] Download von Files / header("Content-Type")

[php] Download von Files / header("Content-Type")

=?iso-8859-1?Q?J=F6rg_Krause?= joerg_(at)_krause.net
Thu, 21 Dec 2000 12:53:14 +0100


Hartmut Holzgraefe wrote:
>
> Das funktioniert aber beim Explorer nur soloange die Endung des
> Dateinamens im Disposition-Header nicht bekannt ist.
>
> ".bla" ist vermutlich nicht bekannt, damit hält sich der Explorer an
> den mittgeteilten Content-Type, aber ".pdf" z.B. wird immer angezeigt
> (installiertes Acrobat-Plugin vorausgesetzt).
>
> "Content-Type", "Content-Disposition: attachment", alles egal.
> Dank Registry weiß der Explorer doch viel besser, was mit einer PDF
> Datei passieren soll, als der blöde Absender.
>
> Wenn mich jemand mit einer vernünftigen Lösung zum Download von PDFs,
> Excel-Sheets u.a. (ohne Verpackung in ZIP-Dateien, ohne Start der
> dazu registrierten Anwendung) im Sinne der Aussage des vorigen Absatzes
> Lügen strafen kann, so sei es ihm bei nächster Gelegenheit mit
> mindestens
> einem Freigetränk gedankt ...
>
IE 5.5/W2K, habe ich folgendes erreicht:

header("Content-type: text/html" );
header("Content-Disposition: attachment");
header("Content-Description: PHP Generated Data" );
$hdl = fopen("test.html" , "r");
fpassthru($hdl);

==> forciert den Download-Dialog (und HTML ist ja sicher bekannt):

header("Content-type: application/ms-excel" );
header("Content-Disposition: filename=\"test.xls\"");
header("Content-Description: PHP Generated Data" );
$hdl = fopen("test.xls" , "r");
fpassthru($hdl);

==> forciert den Download-Dialog und setzt den Namen richtig.

Merkwürdig ist: Wenn man bei Excel das Attribut "attachment" hinzufügt,
was ja eigentlich richtig ist, dann öffnet er die Datei gleich (dank
Registry). Dies tut er umgekehrt, wenn man versucht bei HTML den
Dateinamen zu setzen.
Ich würde empfehlen, den konkreten Fall auszuprobieren und dann je nach
Browser verschiedene Header erzeugen, leider.

Beim Probieren: Wenn das Skript einmal im Cache ist, ruft er die Header
nicht ab (Cache-Problem!), also immer wieder zurück auf den Link,
neu laden...;-( dafür ist der IE halt schneller.

Jörg
----------------------------------------------------
E-Mail:  joerg_(at)_krause.net Info: www.joerg.krause.net
Kennen Sie schon die neue Auflage des Buches zu PHP4?
Hier gibt es die Infos: http://www.php.comzept.de
----------------------------------------------------





php::bar PHP Wiki   -   Listenarchive