![]() |
PHP - Downloadscript liefert falschen Dateinamen
Hallo,
ich verwende bei mir auf der Homepage ein Downloadscript welches anhand einer ID eine Datei zurück gibt und eigentlich auch einen Dateinamen mit zurück geben soll. Das Script sieht wie folgt aus
Code:
$d[1] hat bei einer der Abfragen den wert "desktopswitch.zip". Trotzdem wird zum Beispiel beim Opera die Datei als "download.zip" heruntergeladen (wenn die url so aussieht: download.php?id=desktopswitch.zip). Bei anderen Browsern wird die Datei sogar als "download.php" heruntergeladen. Wie bekomm ich es hinn das der Browser die Datei wirklich als "desktopswitch.zip" herunterlädt? (ich kann ja kaum vom Nutzer erwarten das er die Datei selbst umbenennt um mit dieser arbeiten zu können)
<?
require "dbconnect.php"; $query = "Select url, filename from downloads where id = \"$id\""; $res = mysql_query($query, $link); if ($row = mysql_fetch_row($res)) { $fp = fopen($row[0],"r"); if ($fp) { header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=".$d[1]); $str = fread($fp,filesize($row[0])); print($str); fclose($fp); } else { print("File not found."); } $query = "update downloads set cnt = cnt + 1 where id = \"$id\""; $res = mysql_query($query, $link); } else { print("invalid ID"); } ?> |
Re: PHP - Downloadscript liefert falschen Dateinamen
Probiers mal so:
Code:
Anstatt dem fread()-Dingen zu verwenden koenntest du uebrigens (je nach PHP-Version) auch readfile() verwenden, oder eben file() implode()en ;)
header('Content-Type: application/zip; name="'. $d[1] .'"');
header('Content-Disposition: inline; filename="'. $d[1] .'"'); Greetz alcaeus |
Re: PHP - Downloadscript liefert falschen Dateinamen
ändert leider nichts. Beim Opera wird die datei weiterhin als download.zip heruntergeladen (cache etc. natürlich geleert vorm probieren).
Das es readfile gibt weiß ich, aber bin halt einer von denen die alles von Hand zu Fuß machen wollen. |
Re: PHP - Downloadscript liefert falschen Dateinamen
Moin,
und wie siehts in anderen Browsern aus? Funktionierts? Der Code funktioniert naemlich genau so auch in der DP; kommt naemlich ausm Attachment mod. Wenns in anderen Browsern funktioniert wuerde ich hoechstens auf ein Opera-Problem tippen :roll: Greetz alcaeus |
Re: PHP - Downloadscript liefert falschen Dateinamen
im IE wird die Datei dann nur als "download" heruntergeladen - ohne jegliche Dateiendung. :cry:
|
Re: PHP - Downloadscript liefert falschen Dateinamen
Jetzt funktioniert es - Fehler war folgender (bitte jetzt nicht schlagen):
Und zwar hab ich auf "$d[1]" zugegriffen. Aber die SQL-Abfrage habe ich ja auf "$row" gemacht. Das heißt "$d" war undefiniert :oops: |
Re: PHP - Downloadscript liefert falschen Dateinamen
Zitat:
Edit: Der Firefox (1.5.0.2) erhält auch ne desktopswitch.zip, geht doch also :-) |
Re: PHP - Downloadscript liefert falschen Dateinamen
@Balu der Bär: Inzwischen funktioniert es wie es soll nachdem der Fehler behoben wurden (im übrigen ist seit ca. 10:35 eine neue version verfügbar (Änderungen: siehe letzten Beitrag des anderen Threads)).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz