PHP Downloadscript Problem

Shootingstar

Cadet 2nd Year
Registriert
Nov. 2007
Beiträge
25
Hey,

ich habe mir für meine private Seite ein kleines Downloadscript gebastelt, welches prinzipiell auch funktioniert, allerdings noch eine "Macke" hat.

Ein Beispiel: Ich möchte die Datei TEST.txt runterladen, in welcher ein beliebiger Inhalt enthalten ist. Wenn ich die Datei jetzt mit meinem Script runterlade, dann befindet sich in der Datei nicht nur der entsprechende Text, sondern auch der komplette Output meiner Seite, beginnend mit "<html>....." bis hin zu "</html>", welcher ja nicht in der Datei auftauchen soll.

Den Download starte ich mit:
Code:
if (file_exists('files/'.$filename)) {
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="'.$filename.'"');
        header("Content-Length: ".size($filename));
        readfile('files/'.$filename);
      } else {
        $a['data']['info'] = 'Datei nicht gefunden!';
      }

Kann mir bitte jemand helfen?
Danke schonmal und viele Grüße!
 
Hm ich muss leider passen, mit Filedownloads hab ich mich noch gar nicht beschäftigt unter PHP. Aber ich würde fast vermuten das readfile() der falsche Ansatz ist. Gibt ja ne menge Funktionen dafür...fread(), fget() usw. Einfach mal Google fragen und diverse andere Funktionen testen ob die das Resultat liefern das du gerne hättest.
 
anstatt readfile solltest du besser
fopen (fpasstrhu, fclose) benutzen
die drei funktionen durch read ersetzen, fertig
 
Also, ich habe jetzt mal das readfile() durch
Code:
        $fp = fopen('files/'.$filename, 'r');
        fpassthru($fp);
        fclose($fp);
ersetzt, aber der HTML-Output wird weiterhin in der Datei mit ausgegeben. :mad:

Ich habe spaßeshalber mal nach dem oben aufgeführten Teil ein die() gesetzt, dass es zu keinem HTML-Output kommt und es funktioniert. Aber das kann doch nicht die (saubere) Lösung meines Problems sein?? :freak:
Ergänzung ()

Jetzt leck mich aber am Arsch! Ich habe das ganze mal auf mein Webspace hochgeladen und da läuft alles so wie es soll! Sprich, die .txt-Datei kann ganz normal gespeichert werden, ohne dass noch HTML-Quelltext drinne steht. Wie kann das sein? Daheim nutze ich XAMPP in der neusten Version, was auf dem Webspace läuft weiß ich net genau.
 
Shootingstar schrieb:
Also, ich habe jetzt mal das readfile() durch
Code:
        $fp = fopen('files/'.$filename, 'r');
        fpassthru($fp);
        fclose($fp);
ersetzt, aber der HTML-Output wird weiterhin in der Datei mit ausgegeben. :mad:

Ich habe spaßeshalber mal nach dem oben aufgeführten Teil ein die() gesetzt, dass es zu keinem HTML-Output kommt und es funktioniert. Aber das kann doch nicht die (saubere) Lösung meines Problems sein?? :freak:
Ergänzung ()

Jetzt leck mich aber am Arsch! Ich habe das ganze mal auf mein Webspace hochgeladen und da läuft alles so wie es soll! Sprich, die .txt-Datei kann ganz normal gespeichert werden, ohne dass noch HTML-Quelltext drinne steht. Wie kann das sein? Daheim nutze ich XAMPP in der neusten Version, was auf dem Webspace läuft weiß ich net genau.

Hallo,

habe selbes Problem gehabt. Setzt Du die Lösung innerhalb eines CMS ein? Bei mir war es der CMS-Cache. Ich muss die Datei zwingend mit dem gesamten Pfad auf dem Server angeben, sonst wurde bei mir die Webseite mit dem HTML-Code an den Anfang der Datei gesetzt. Bei mir war es ne PDF-Partei, die nat. nicht geöffnet werden konnte wenn die Datei als HTML beginnt. :-) Versuch mal n absoluten Pfas anzugeben.
 

Ähnliche Themen

Antworten
8
Aufrufe
2.728
mambokurt
M
B
Antworten
2
Aufrufe
3.311
Boedefeld1990
B
M
Antworten
5
Aufrufe
1.206
master.rv
M
Zurück
Oben