AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP - Downloadscript liefert falschen Dateinamen
Thema durchsuchen
Ansicht
Themen-Optionen

PHP - Downloadscript liefert falschen Dateinamen

Ein Thema von SirThornberry · begonnen am 10. Jun 2006 · letzter Beitrag vom 10. Jun 2006
Antwort Antwort
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 08:31
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:
<?
  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");
  }
?>
$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)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 08:35
Probiers mal so:

Code:
header('Content-Type: application/zip; name="'. $d[1] .'"');
header('Content-Disposition: inline; filename="'. $d[1] .'"');
Anstatt dem fread()-Dingen zu verwenden koenntest du uebrigens (je nach PHP-Version) auch readfile() verwenden, oder eben file() implode()en

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 08:41
ä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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 08:46
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

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 08:48
im IE wird die Datei dann nur als "download" heruntergeladen - ohne jegliche Dateiendung.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 08:53
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#7

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 09:16
Zitat:
Beim Opera wird die datei weiterhin als download.zip heruntergeladen
Falsch. Ich erhalte beim Klick auf den Link eine "desktopswitch.zip" (Opera 8.54).

Edit: Der Firefox (1.5.0.2) erhält auch ne desktopswitch.zip, geht doch also
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: PHP - Downloadscript liefert falschen Dateinamen

  Alt 10. Jun 2006, 09:39
@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)).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz