Probleme beim Erzwingen des Downloads einer PDF -Datei
-
23-10-2019 - |
Frage
Ich habe die folgende Funktion, um eine Datei herunterzuladen:
static public function download($file, $options=array()) {
$content = (isset($options['content'])) ? $options['content'] : '';
$contentType = (isset($options['contentType'])) ? $options['contentType'] : '';
header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.File::filename($file));
header('Content-Type: '.$contentType);
header('Content-Transfer-Encoding: binary');
if ($content!='') {
echo $content;
} else {
readfile($file);
}
}
Ich sende eine PDF -Datei und ContentType = "Anwendung/PDF". Das Problem ist, dass wenn ich versuche, die heruntergeladene PDF -Datei zu öffnen, heißt es: "Es gab einen Fehler, der dieses Dokument öffnet. Die Datei kann beschädigt sein." Ist seltsam, weil ich die Originaldatei öffnen kann und sie genau gleich aussehen (Dateiname, Größe usw.)
Lösung
Stellen Sie sicher, dass es keine Ausgabe gibt, bevor diese Funktion ausgeführt wird, und verwenden Sie für ein gutes Maß die exit
Konstrukt am Ende dieser Funktion :)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow