Herunterladen einer PDF-Datei erzwingen, beschädigte Datei

Ich habe ein Problem, das bei SO schon oft aufgetreten ist, aber ich kann anscheinend keine Lösung für mein Problem finden! Ich versuche, eine PDF-Datei an den Client zu übermitteln, ohne dass sie im Browser geöffnet wird. Die Datei wird heruntergeladen, ist jedoch beim Öffnen beschädigt und es fehlen einige Bytes in der Originaldatei. Ich habe verschiedene Methoden zum Herunterladen der Datei ausprobiert, aber ich zeige Ihnen nur die neueste, die ich verwendet habe, und erhalte hoffentlich ein Feedback.

Ich habe das heruntergeladene PDF auch in einem Texteditor geöffnet und es gibt keine PHP-Fehler oben drauf, die ich sehen kann!

Ich bin mir auch bewusst, dass readfile () viel schneller ist, aber zu Testzwecken bin ich verzweifelt, irgendetwas zum Laufen zu bringen, also habe ich den while (! Feof ()) - Ansatz verwendet!

Wie dem auch sei, hier ist der Code (entnommen ausWarum ist meine heruntergeladene Datei immer beschädigt oder beschädigt?):

$file     = __DIR__ . '/reports/somepdf.pdf';
$basename = basename($file);
$length   = sprintf("%u", filesize($file));

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $basename . '"');
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $length);

ob_clean();
set_time_limit(0);
readfile($file);

Zu beachten war auch der Unterschied in der Dateigröße:

Original: 351,873 bytes
Downloaded: 329,163 bytes

Antworten auf die Frage(3)

Ihre Antwort auf die Frage