Загрузка файла PDF с использованием PHP повреждена на сервере - PullRequest
1 голос
/ 16 августа 2010

Я реализовал скрипт загрузки с использованием PHP-заголовков для загрузки PDF-файлов.Мой скрипт работает нормально и загружает соответствующий файл PDF также на мой локальный хост, но этот скрипт не работает на моем сервере.

Мой код:

header("Content-Disposition: attachment; filename='dfile.pdf'");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: application/pdf;");

readfile("http://www.education.gov.yk.ca/pdf/pdf-test.pdf");

На моем сервере браузер файловотображается нормально и загружает файл также как dfile.pdf, но если я пытаюсь открыть загруженный файл, я получаю сообщение об ошибке the file has been damaged.Какие-либо настройки моего сервера, вызывающие эту проблему, или что-то еще?

Любые предложения по устранению этой проблемы весьма заметны.

Примечание.кто-нибудь подскажет, нужна ли функции "readfile" настройка PHP для включения на моем сервере?

Заранее спасибо, Шива ...

Ответы [ 3 ]

3 голосов
/ 16 августа 2010

Я думаю, что PHP выводит некоторые предупреждения перед телом файла PDF. Проверьте это.

0 голосов
/ 02 июня 2012

Попробуйте использовать этот код:

$file = 'monkey.pdf';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
0 голосов
/ 31 декабря 2011

Эта проблема из-за настроек PHP моего сервера, параметр allow_url_fopen не включен на моем сервере.Я справляюсь с этой ситуацией, используя CURL, в любом случае, спасибо за вашу поддержку.

...