PDF Download erzwingen
2013-12-09 00:00:00
IN1
,
2023-04-10 14:16:28
IN1
Durch das richtige Setzen von Headern kann man das unmittelbare Darstellen von PDF im Browser verhindern und stattdessen das Anzeigen der Download Dialog-Box erzwingen.
Firefox hat seit der Version 19 einen inline Renderer integriert. Dieser wird standardmäßig vom Browser genutzt, wenn ein PDF aufgerufen wird. Will man dies umgehen, und stattdessen das PDF direkt zum Download anbieten, müssen nur folgende Header an den Client gesendet werden, und schon bietet auch Firefox die Dialog-Box an:
<?php
// filename
$sFile = 'MeineDateiZumDownload.pdf'
// setze Header
header('Content-type: application/pdf');
header('Content-Length: ' . filesize($sFile));
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
header('Pragma: no-cache');
header('Expires: 0');
header('Content-Disposition: attachment; filename="' . $sFile . '"');
// lies PDF
readfile($sFile);