Datei-Download mit richtigem Dateinamen
andreas_ck
- php
0 Patrick Canterino0 Harry
0 Harry0 andreas_ck0 Harry
0 Christian Kruse
Moin,
ich implementiere einen automatischen Datei-Download in meiner php-Seite. Wenn der Download startet, bietet er mir aber als Dateiname den Namen der php-Datei an, nicht den der herunterzuladenen Datei. Für jeden Hinweis warum das so ist und wie man das ändern kann bin ich dankbar. Hier ein Auszug aus meinem Code:
$datei = @fopen("C:\temp\$projektname.zip", r);
header("Content-Type: application/zip");
header("Content-Disposition: attachment, filename=$projektname.zip");
header("Content-Description: Projektdaten");
header("Pragma: no-cache");
header("Expires: 0");
fpassthru($datei);
fclose($datei);
Vielen Dank.
Andreas.
Morgen Andreas,
versuche mal, die Datei mit diesem Befehl aufzurufen (behalte die Content-Type angaben besser!):
header("Location: C:\temp\$projektname.zip");
Viele Grüße
Patrick Canterino
Moin Patrick
versuche mal, die Datei mit diesem Befehl aufzurufen (behalte die Content-Type angaben besser!):
header("Location: C:\temp\$projektname.zip");
A so a schmarrn !
Da versucht der Browser doch dann die Datei von der lokalen Platte zu holen ... "Location" interessiert im Header nur den Clienten, aber nicht den Server !
Ciao,
Harry
Morgen Harry,
ich habe mal wieder zuviel gedacht! Das würde aber Sinn machen, wenn eine Datei auf dem Server aufgerufen werden soll. Oder?!
Viele Grüße
Patrick Canterino
Hi Patrick
ich habe mal wieder zuviel gedacht! Das würde aber Sinn machen, wenn eine Datei auf dem Server aufgerufen werden soll. Oder?!
Das macht nur Sinn, wenn die Datei, die im Header referenziert wird, für den Browser auch erreichbar ist. Die Header die Du aus Deinem PHP-Script versendest gehen primär erstmal nur den Clienten was an.
Du kannst damit aber recht schön Umleitungen auf andere Webseiten basteln.
Ciao,
Harry
Holladiwaldfee
header("Content-Disposition: attachment, filename=$projektname.zip");
header("Content-Disposition: attachment, filename="".$projektname.".zip"");
Dann sollte es gehn :-)
Ciao,
Harry
Vielen Dank, aber leider war der Effekt der gleiche.
Ich bin recht ratlos.
Gruß
Andreas.
Holladiwaldfee
header("Content-Disposition: attachment, filename=$projektname.zip");
header("Content-Disposition: attachment, filename="".$projektname.".zip"");
Dann sollte es gehn :-)
Ciao,
Harry
Holladiri !
Vielen Dank, aber leider war der Effekt der gleiche.
header("Content-Disposition: attachment, filename="".$projektname.".zip"");
header("Content-Disposition: attachment, filename="".$projektname.".zip"\n\n");
Dann prorbier's mal so (glaube aber nicht, daß das was hilft).
Harry
Hoi,
header("Content-Disposition: attachment, filename="".$projektname.".zip"\n\n");
Sorry, aber das ist ausgemachter Bloedsinn. Das setzen der Newlines
solltest du schon der Header-Funktion ueberlassen. Finde dich halt
damit ab, dass nicht alle Browser das so moegen.
Gruesse,
CK
Oih !
header("Content-Disposition: attachment, filename="".$projektname.".zip"\n\n");
Sorry, aber das ist ausgemachter Bloedsinn. Das setzen der Newlines
solltest du schon der Header-Funktion ueberlassen. Finde dich halt
damit ab, dass nicht alle Browser das so moegen.
Ok stimmt. Mein Fehler. Ich dachte, ich hätte mal irgendwo gelesen, daß man der header-Funktion auf jeden Fall ein Newline hinterherschieben sollte. Tut mir sorry.
Vielleicht hilft ja aber der Kommentar auf http://www.php.net/manual/en/function.header.php weiter:
<cite>
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=downloaded.pdf");
Note: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from working. There is no workaround. There is also a bug in Microsoft Internet Explorer 5.5 that interferes with this, which can be resolved by upgrading to Service Pack 2 or later.
</cite>
Ciao,
Harry
Hey,
vielen Dank für den Link. Der hat mich auf eine Idee gebracht, die nun funzt. Ich erstelle die *.zip-Datei einfach innerhalb des Webbereichs. Da sie anschließend sofort wieder gelöscht wird, ist das auch nicht weiter schlimm. Nun kann ich nämlich über
header("Location: http://.../$projektname.zip");
die URL angeben und der Download startet von alleine.
Viele Grüße
Andreas
Oih !
header("Content-Disposition: attachment, filename="".$projektname.".zip"\n\n");
Sorry, aber das ist ausgemachter Bloedsinn. Das setzen der Newlines
solltest du schon der Header-Funktion ueberlassen. Finde dich halt
damit ab, dass nicht alle Browser das so moegen.
Ok stimmt. Mein Fehler. Ich dachte, ich hätte mal irgendwo gelesen, daß man der header-Funktion auf jeden Fall ein Newline hinterherschieben sollte. Tut mir sorry.
Vielleicht hilft ja aber der Kommentar auf http://www.php.net/manual/en/function.header.php weiter:
<cite>
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=downloaded.pdf");
Note: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from working. There is no workaround. There is also a bug in Microsoft Internet Explorer 5.5 that interferes with this, which can be resolved by upgrading to Service Pack 2 or later.
</cite>
Ciao,
Harry
Hi Andreas,
Ich erstelle die *.zip-Datei einfach innerhalb des Webbereichs.
Da sie anschließend sofort wieder gelöscht wird, ist das auch
nicht weiter schlimm.
habe ich das jetzt richtig verstanden, daß Du einen Download aus
einer dynamisch erstellten Datei speisen möchtest?
Na, dann mal viel Spaß beim Synchronisieren ...
Viele Grüße
Michael
Hoi,
ich implementiere einen automatischen Datei-Download in meiner
php-Seite. Wenn der Download startet, bietet er mir aber als
Dateiname den Namen der php-Datei an, nicht den der
herunterzuladenen Datei. Für jeden Hinweis warum das so ist und wie
man das ändern kann bin ich dankbar. Hier ein Auszug aus meinem
Code:
[... code ...]
Der ist soweit ok. Fuer die Browser, dies bis dahin noch nicht
geschnallt haben, leg den Link auf 'download.php/dateiname'. Wenn du
einen richtigen Webbrowser benutzt, sollte der das verstehen, dein
Script aufrufen und '/dateiname' in die Environment-Variable PATH_INFO
schreiben.
Gruesse,
CK
Moin,
vielen Dank, aber dein Vorschlag scheint nicht zu funktionieren; wenn ich dich richtig verstanden habe: Die Datei, die den Download startet soll mit der Syntax datei.php/zu_downloadende_datei.zip aufgerufen werden? Das gibt bei mir einen CGI Error aufgrund fehlender Header; sprich weil er die Datei zu_downloadende_datei.zip aufrufen will und nicht findet. Wobei ich ja auch nicht sicher bin, ob du den IE 6 einen richtigen Webbrowser nennst.
Viele Gruesse
Andreas.
Hoi,
ich implementiere einen automatischen Datei-Download in meiner
php-Seite. Wenn der Download startet, bietet er mir aber als
Dateiname den Namen der php-Datei an, nicht den der
herunterzuladenen Datei. Für jeden Hinweis warum das so ist und wie
man das ändern kann bin ich dankbar. Hier ein Auszug aus meinem
Code:
[... code ...]
Der ist soweit ok. Fuer die Browser, dies bis dahin noch nicht
geschnallt haben, leg den Link auf 'download.php/dateiname'. Wenn du
einen richtigen Webbrowser benutzt, sollte der das verstehen, dein
Script aufrufen und '/dateiname' in die Environment-Variable PATH_INFO
schreiben.
Gruesse,
CK
Hoi,
Lesetipp: http://learn.to/quote
vielen Dank, aber dein Vorschlag scheint nicht zu funktionieren;
wenn ich dich richtig verstanden habe: Die Datei, die den
Download startet soll mit der Syntax
datei.php/zu_downloadende_datei.zip aufgerufen werden?
Richtig.
Das gibt bei mir einen CGI Error aufgrund fehlender Header;
sprich weil er die Datei zu_downloadende_datei.zip aufrufen will
und nicht findet.
Das ist nicht wahr. Ein 500er Fehler hat nichts mit einem 400er
Fehler zu tun. Es ist wohl eher so, dass was mit deiner Webserver-
Config nicht stimmt.
Wobei ich ja auch nicht sicher bin, ob du den IE 6 einen
richtigen Webbrowser nennst.
Sorry, das war ein Typo. Es muss 'Webserver' heissen.
Gruesse,
CK