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-Key: 217591

Url: https://administrator.de/contentid/217591

Printed on: April 18, 2024 at 21:04 o'clock

Member: nxclass
nxclass Sep 23, 2013 updated at 06:14:07 (UTC)
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.
Member: B-free
B-free Sep 23, 2013 at 11:39:13 (UTC)
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