Коллеги, не могу понять в чем дело. При сохранении файла формата pdf все проходит гладко, но при попытке открыть файл на клиентской машине выдается сообщение "Adobe reader could not open "3010-F10.pdf" because it is either not a supported file type or because file has beeb damaged (for example, it was sent as an email attachment and wasn't correctly decoded)"
Ниже приведен код:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="3010-F10.pdf"');
header('Content-Transfer-Encoding: binary');
ob_clean();
flush();
readfile("$filename");
Заранее спасибо!
Комментарии
У вас pdf генерится налету? Если нет, то отдавайте апачем.
Если да, то попробуйте блочное чтение:
$fp = fopen($file,"r") ;
header("Content-Type: application/pdf");
header('Content-Disposition: attachment; filename="test.pdf"');
while (! feof($fp)) {
$buff = fread($fp,4096);
print $buff;
}
Генерации на лету не происходит, файл лежит просто на сервере.
Я в этом деле человек новый, так что если будут некоторые указания о том как отдавать документ с помощью апача буду очень сильно признателен.
Ну и за предыдущий ответ большое спасибо)
попробуй так:
<?php
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=\"3010-F10.pdf\";");
header("Content-Transfer-Encoding: binary");
readfile("3010-F10.pdf");
exit();
?>
А вот это сработало))) большущее спасибо)))
Отдавать апачем -- это значит просто ставить ссылку на файл или перенаправлять пользователя по этой ссылке. В этом случае файл будет отдан пользователю быстрее и эффективнее без обращению к ПХП.
Типа: