Загрузка PDF - не могу открыть его - PullRequest
1 голос
/ 01 сентября 2010

Я позволяю своим пользователям скачивать PDF-файл, используя этот код:

$db->Record['file'] содержит относительный путь к документу.

Доступ к фиктивной странице, которая загружает PDF, поэтому они не видят "text.pdf" в URL. Я изменил заголовки файла, чтобы добиться этого:

$downloadfile = '/data/srv/www/vhosts/htdocs'.$db->Record['file'];
$filename = basename($downloadfile);        
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.$filename.'"');        
readfile($downloadfile);

Загрузка работает без проблем, но когда я пытаюсь ее открыть, возникает следующая ошибка:

The PDF file could not be openend, the type is not supported or the file
was damaged.

Как я могу это исправить?

Не: Когда я загружаю файл напрямую, доступ к нему осуществляется через http://.../text.pdf и открываю его, все работает нормально.

Ответы [ 3 ]

3 голосов
/ 01 сентября 2010

Возможно, браузер не может определить длину ожидаемого чтения из файла. Из документации php попробуйте добавить размер файла в заголовок:

header('Content-Length: ' . filesize($file));
2 голосов
/ 01 сентября 2010

(Скопировано из комментариев) Готов поспорить, пиво содержит сообщения об ошибках PHP.

0 голосов
/ 27 февраля 2018

Вы пропустили / после htdocs в первой строке?

...