Hallo
$file = 'test.pdf';
Du hast nun einen Dateinamen angegeben.
header('Content-Disposition: filename="'.basename($file).'"');
Der Dateiname wird nun korrekt in den HTTP-Header eingefügt.
header('Content-Length: ' . filesize($file));
Allerdings wird es ab hier etwas verwirrend. Die Funktion filesize
braucht nicht nur einen Dateinamen, sondern Zugang zur Datei. Deshalb …
readfile('ausgabedateien/'.$file);
nur mit dem Pfad bei READFILE stimmt etwas nicht. Die Datei leigt im Verzeichniss ausgabedateien.
… verwundert mich dein letzter Satz. Wenn die Datei „test.pdf“ wie du anfangs schriebst, im selben Verzeichnis wie das Skript liegt, ist das Voranstellen von „ausgabedateien/“ vor den Dateinamen, der in $file
liegt, falsch. Ist jedoch die Angabe von „ausgabedateien/“ vor dem Dateinamen richtig, weil, wie du zum Schluss angibst, die Datei in eben diesem Verzeichnis liegt, kann filesize($file)
nicht funktionieren, weil die Datei, falls nicht eine Kopie von „test.pdf“ im Skriptverzeichnis liegt, nicht gefunden werden kann.
Tschö, Auge
Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
Wolfgang Schneidewind *prust*