Moin,
fällt dir an diesem Pfad etwas auf:
$filename='/ www/users/12/docs/datei.pdf';
Du steckst jedenfalls den Inhalt der Variablen in einen HTTP-Header. Ich habe jetzt nicht in der Spezifikation nachgeschaut, aber ich glaube, dass im Folgenden ein relativer Pfad besser wäre:
header("Content-Disposition: filename=\"$filename\""); // Dateiname
Und hier zu,
header("Content-Length: ".filesize($filename)); // Dateigröße readfile($filename);
empfehle ich, die Datei zu öffnen, mit fstat die Dateigröße zu ermitteln, die Datei auszugeben und dann zu schließen. Das spart einiges an doppeltem Aufwand, den filesize sowie readfile jeweils verursachen.
Viele Grüße
Robert