PHP: header("location: $filename"); Problem

Post Reply
Message
Author
mvo

PHP: header("location: $filename"); Problem

#1 Post by mvo »

Hallo,
ich mache gerade meine ersten PHP-Gehversuche.
Ich will auf einer Seite Dateien zum Download anbieten. Um einen Downloadzaehler zu realisieren, verwende ich ein kleines PHP-Script dafuer. Dieses Script enthaelt eine
<b>
header("location: $filename");
</b>
Funktion, um die Datei abzurufen. Das funktioniert auch ganz gut, aber bei manchen Dateitypen zeigt der Browser die Datei direkt an, statt den Filesave-Dialog anzubieten. Da mache ich dann wie gewohnt "Shift-Linksklick", aber dann wird im Filesave-Dialog nicht mehr der Download-Dateiname vorgegeben, sondern der Name des Scriptes.

Wie kann ich den Browser zwingen, in jedem Fall den Filesave-Dialog anzubieten? Oder wenigstens bei "Shift-Linksklick" den richtigen Dateinamen vorzugeben? Ich habe es schon mit
<b>
header("Content-Disposition: attachment; filename=$filename");
header("location: $filename");
</b>
versucht, das hat aber keine Wirkung gezeigt.

jensemann
Posts: 189
Joined: 08. Dec 2001 15:18
Location: Krefeld (obwohl mir Kölsches Bier lieber ist)
Contact:

Re: PHP: header(

#2 Post by jensemann »

Hi

Guck mal in der php FAQ nach (http://www.dclp.de), solche Fragen werden in de.comp.lang.php regelmäsig gestellt, IIRC hängt das mit dem Mimetype zusammen, teilweise auch an Buggy Browsern (wobei dabei vorrangig der M$ IE betroffen ist (wen wunderts <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">)

Mfg jensemann
Hilfe bei LFS Problemen: <a href="http://www.lfsforum.org" target="_blank"><!--auto-->http://www.lfsforum.org</a><!--auto-->

mvo

Re: PHP: header(

#3 Post by mvo »

Hi,
danke fuer den Link, da war etwas brauchbares dabei.

>Wie kann ich den Browser zwingen, in jedem Fall den Filesave-Dialog anzubieten?
So funktioniert das jetzt, mit normalem Linksclick:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$get");
readfile("$path$get");
</font><hr></pre></blockquote>

>Oder wenigstens bei "Shift-Linksklick" den richtigen Dateinamen vorzugeben?
Dazu habe ich absolut nichts gefunden. Mit "Shift-Linksclick" wird beim Konqueror 3.0.1 immer noch der Name des PHP-Scriptes im Dateidialog vorgegeben, mit Mozilla 1.0 funktioniert es richtig.

jensemann
Posts: 189
Joined: 08. Dec 2001 15:18
Location: Krefeld (obwohl mir Kölsches Bier lieber ist)
Contact:

Re: PHP: header(

#4 Post by jensemann »

Hi

Ja, mit dem Dateinamen hatten wir auch schon mal in de.comp.lang.php, ist keine Lösung in sicht, scheint ein Browser Bug zu sein, von dem aber AFAIK auch andere Browser betroffen sind.

Mfg jensemann
Hilfe bei LFS Problemen: <a href="http://www.lfsforum.org" target="_blank"><!--auto-->http://www.lfsforum.org</a><!--auto-->

Post Reply