Сначала я доставляю документы с помощью этой функции (предварительные заголовки отправляются):
Код: Выделить всё
function _outputContent(&$fileEntry) {
// return $fileEntry content (decrypted PDF file)!
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Accept-Ranges: bytes");
header("Pragma: public");
header('Expires: 0');
header("Content-Description: File Transfer");
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=\"".$fileEntry["name"]."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . strlen($fileEntry["decrypted"]));
echo $fileEntry["decrypted"];
}
сильный>. Если позже пользователь закроет веб-браузер и откроет его через несколько часов, некоторые веб-браузеры попытаются восстановить все предыдущие открытые вкладки и вызовут недействительные запросы на загрузку для этих вкладок. Наибольшее количество запросов составило 56 запросов за три секунды с одного устройства. К сожалению, это запускает mod_evasive и другой инструмент безопасности, который мы реализовали против атак DOS.
Есть ли способ доставить PDF-файл так, чтобы URL-адрес загрузки не оставался на новой созданной вкладке ?
Я пробовал другие значения Content-Type, такие как application/octet-stream, но это вызывает проблемы у конечных пользователей, которые хотят, чтобы PDF-файл открывался. напрямую. Некоторые, похоже, не могут позже открыть загруженный файл. Так что хорошо, что PDF отображается сразу. Или я могу вообще запретить веб-браузеру создавать новую вкладку?
Подробнее здесь: https://stackoverflow.com/questions/787 ... a-pdf-file
Мобильная версия