Я перенаправляю посетителей на своем сайте со страницы A на страницу B. На странице B я ожидаю, что пользователи получат загруженный файл PDF (который будет загружен при загрузке страницы B). я взял код из другой статьи (увидеть previous question answered here) и мой код страницы B выглядит следующим образом:Почему загруженный файл не загружается, а отображается в браузере?
<?php
header('Content-Disposition: attachment; filename=nature.pdf');
header('Content-type: application/pdf');
$fn=fopen("/wp-content/nature.pdf","r");
fpassthru($fn);
?>
Выход не открывая диалоговое окно загрузки, а не некоторые нечитаемые символы отображаются в браузере таких, как следующее (я просто взял небольшой образец ниже):
% PDF-1.4% 3 0 объект <> поток xMK1o + $ зиг & V = T = Xo K i + # V yx3 (BX pW`
Сервер: ОС Linux; PHP версия: 5.2.17
Посетитель -> Браузер: Firefox; ОС: Windows 2000
Возможно ли провалиться из-за старой ОС на стороне клиента? Если нет, знает ли кто-нибудь решение, как заставить загрузку? Любая помощь будет высоко оценен.
Спасибо.
попробуйте прочитать файл ("/ wp-content/nature.pdf"); вместо fopen & fpassthru – Venu
В зависимости от размера загрузки вы можете использовать 'XSendFile' (поддерживаемый как lighttpd, так и apache2 с помощью файла modxsend). Затем вы будете загружать с помощью: 'header ('XSendFile: /wp-content/nature.pdf');' и XSendFile будут обрабатывать остальные. – user268396
@Venu - уже пытался (см. Ниже при тестировании кода, предложенного пользователем «take»). Благодарю. –