Problemas para forzar la descarga de un archivo PDF
-
23-10-2019 - |
Pregunta
Tengo la siguiente función para forzar descargar un archivo:
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);
}
}
Envío un archivo PDF y contentType = "Application/PDF". El problema es que cuando intento abrir el archivo PDF descargado, dice "Hubo un error que abrió este documento. El archivo puede estar corrupto". Es extraño porque puedo abrir el archivo original y se ven exactamente igual (nombre de archivo, tamaño, etc.)
Solución
Asegúrese de que no haya salida antes de que se ejecute esta función y, en buena medida, use el exit
construir al final de esta función :)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow