Как использовать PHP для принудительной загрузки файла

Поскольку большинство современных браузеров отображают PDF и мультимедийные файлы встроенными, используйте язык программирования PHP — который позволяет изменять заголовки HTTP файлов, которые вы пишете — чтобы заставить браузер загружать, а не отображать файл определенного типа.

Вам понадобится PHP на веб-сервере, где будут храниться ваши файлы, загружаемый файл и тип MIME для рассматриваемого файла.

Как использовать PHP для принудительного скачивания файла

Этот процесс требует двух отдельных шагов. Сначала вы создадите файл PHP, который управляет файлом, который вы хотите защитить, а затем добавите ссылку на этот файл PHP в HTML-код страницы, на которой он появляется.

После загрузки файла на сервер создайте документ PHP в текстовом редакторе. Если, например, вы хотите, чтобы файл sample.pdf загружался, а не отображался в строке, создайте скрипт, подобный следующему:

заголовок («Content-disposition: attachment; filename = sample.pdf»);
заголовок («Content-type: application / pdf»);
ReadFile ( "sample.pdf");
?>

Ссылка на тип содержимого в PHP важна — это MIME-тип файла, который вы защищаете. Если, например, вместо этого вы сохранили файл MP3, вам нужно заменить application / pdf на audio / mpeg.

Там должен быть нет пробелов или возврата каретки в любом месте файла (кроме точки с запятой). Пустые строки приведут к тому, что PHP по умолчанию будет использовать тип MIME text / html, и ваш файл не загрузится.

Сохраните файл PHP в том же месте, что и ваши HTML-страницы. Затем измените ссылку на страницу в PDF следующим образом:

Скачать PDF

Соображения

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

Ссылка на основную публикацию