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

Заголовок расположения содержимого переопределяет встроенную функцию отображения в браузере.

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

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

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

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

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

  заголовок ("Content-disposition: attachment; filename = sample.pdf"); 
header ("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 с одинаковыми именами, отличающимися только расширением, чтобы все было в порядке.

Оцените статью
Solutics.ru
Добавить комментарий