Я сталкиваюсь с некоторыми проблемами при создании отчетов в формате PDF из моего приложения в Firefox (Ubuntu Machine).
мой код:
<?php
$path = "path_to_file" ;
$file = "test.pdf";
header('Content-type: application/pdf');
header("Content-disposition: attachment; filename=$file");
readfile($path);
return new Response("Success");
код работает:
не работает:
Пожалуйста, помогите мне исправить эту проблему. Спасибо заранее.
Получил мой ответ. Это может помочь другим.
<?php
$path = "path_to_file" ;
$file = "test.pdf";
header("Content-disposition: attachment; filename= $file"); //Tell the filename to the browser
header("Content-type: application/pdf");//Get and show report format
header("Content-Transfer-Encoding: binary");
header("Accept-Ranges: bytes");
readfile($path); //Read and stream the file
get_curret_user();
Я бы сделал это таким образом, чтобы избежать некоторых проблем с браузерными приложениями и кэшированием. Дайте ему попытку:
<?php
$path = "path_to_file" ;
$file = "test.pdf";
$content = file_get_contents($path);
header("Content-disposition: attachment; filename=\"".$file."\"");
header("Content-type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".strlen($content));
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
echo $content;
die();
РЕДАКТИРОВАТЬ:
Если действительно необходимо использовать плагин pdf в браузере, а не загружать и сразу же открывать его с помощью соответствующей программы чтения PDF по умолчанию, замените
header("Content-type: application/force-download");
с
header("Content-type: application/pdf");