b-free
Goto Top

PHP Downloadzwang Script beschädigt Dateien!

Hallo,

Ich bin ein Neuling in PHP und habe ein Script, was den Download erzwingt. Es funzt eigentlich alles, nur leider sind die Dateien nach dem Download nicht mehr zu öffnen. Im Hexeditor habe ich dann gesehen, dass die gesamte Webseite in eine Datei geschrieben wurde. Blöd oder?

mein Code sieht so aus:
(...)
$datei = "daten/".$pfaduser."/".$datei;  
$dateiname = basename($datei);
$groesse = filesize($datei);
header("Content-Type: application/force-download");  
header("Content-Disposition: attachment; filename=".$dateiname);  
header("Content-Length:".$groesse);  
readfile($datei);
(...)

auf dem Server sind die Dateien noch ganz.

bin Ratlos
Tschau
B-Free

Content-ID: 217591

Url: https://administrator.de/forum/php-downloadzwang-script-beschaedigt-dateien-217591.html

Ausgedruckt am: 23.12.2024 um 12:12 Uhr

nxclass
nxclass 23.09.2013 aktualisiert um 08:14:07 Uhr
Goto Top
die gesamte Webseite in eine Datei geschrieben wurde.
ja - aber das ist doch genau was passiert wenn jemand Inhalte vom Server läd.

<?php
(...)
$datei = "daten/".$pfaduser."/".$datei;  
$dateiname = basename($datei);
$groesse = filesize($datei);
header("Content-Type: application/force-download");  
header("Content-Disposition: attachment; filename=".$dateiname);  
header("Content-Length:".$groesse);  
readfile($datei);
exit;
... es darf keine Ausgabe vor dem senden der header() erfolgen und auch nicht nach dem senden der readfile($datei).

Ich würde beim Content-Type aber möglichst den richtigen Type angeben - lass doch den Browser des Clients entscheiden was er mit der Datei macht.
B-free
B-free 23.09.2013 um 13:39:13 Uhr
Goto Top
Hallo, Danke und Öhm.

Ich würde beim Content-Type aber möglichst den richtigen Type angeben - lass doch den Browser des
Clients entscheiden was er mit der Datei macht.
Das Problem ist, dass ich Dateien zum Download anbiete und eben nicht möchte, dass diese angezeigt wird.

... es darf keine Ausgabe vor dem senden der header() erfolgen und auch nicht nach dem senden der
readfile($datei).
Das ist die Antwort auf mein Problem! Danke!

Also werde ich die Datei in einem neuen Tab öffnen lassen, wo vorher keine Ausgabe stattfindet (und nachher auch nicht).

Danke und Tschau
B-Free