Intereting Posts
Запуск приложения PHP на windows – демон или cron? Yii2 – Вызов команды консоли Yii из другой команды консоли? Как вывести простую таблицу ascii в PHP? API Paypal – GetVerifiedStatus – Недействительный запрос Передача массива с использованием скрытого элемента формы Html Принимая скриншот веб-сайта, серверный сервер на арендованном Linux сервере, бесплатно Выбор случайного элемента из ассоциативного массива PHP Подпись MAC, найденная в HTTP-запросе, не совпадает с любой вычисляемой интеграцией azure подписи с использованием php Почему мое тестовое приложение в бесконечном цикле перенаправления? Избегайте ограничения времени выполнения PHP Удаление якорей из текста PHP Извлечение аудио из видео Борьба за установку названий страниц для динамических страниц PHP на сайте WordPress 404 в реальном времени Google App Engine, работая на локальном SDK-сервере Путь Путаница: Требует ли, включает, fopen и т. Д. Принимает все их пути одинаково?

Загрузить pdf-файл с php

Я пытаюсь сделать файл, который отправляет файл PDF посетителю. У меня есть файл: download.php

и это его содержание:

header('Content-disposition: attachment; filename='.$_GET['file']); header('Content-type: application/pdf'); readfile($_GET['file']); 

по какой-то причине файл отправляет пустой файл PDF 183 байта.

любой совет?

Благодарю.

Вы должны указать полный путь к файлу для readfile (), а не только имя файла.

Прежде всего, вам действительно нужно сначала проверить, существует ли файл с файлами_exists

Второе … это кажется довольно неуверенным, поскольку вы разрешаете указывать имя файла через глобальный параметр $ _GET. Что делать, если я попытаюсь загрузить ваш файл конфигурации, например download.php?file=../application/settings/config.ini ? Вы должны сначала отфильтровать параметр $ _GET и убедиться, что указанный файл разрешен для загрузки.

Попробуй это:

 header('Pragma: public'); // required header('Expires: 0'); // no cache header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: private', false); header('Content-Type: application/pdf'); header('Last-Modified: ' . gmdate('D, d MYH:i:s', filemtime($filepath)) . ' GMT'); header('Content-disposition: attachment; filename=' . $pathinfo['filename'] . '.pdf'); header("Content-Transfer-Encoding: binary"); header('Content-Length: ' . filesize($filepath)); // provide file size header('Connection: close'); readfile($filepath); exit();