принудительное скачивание файла

У меня есть страница php с информацией и ссылки на файлы, такие как файлы PDF. Типы файлов могут быть любыми, так как они могут быть загружены пользователем.

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

Все ссылки на другие страницы выполняются через Javascript, а фактическая ссылка – на #, так что, возможно, это будет нормально?

Должен ли я просто установить

header('Content-Disposition: attachment;) 

для всей страницы?

Вам необходимо отправить эти два поля заголовка для конкретных ресурсов:

 Content-Type: application/octet-stream Content-Disposition: attachment 

Content-Disposition может дополнительно иметь параметр filename .

Вы можете сделать это либо с помощью PHP-скрипта, который отправляет файлы:

 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment'); readfile($fileToSend); exit; 

И имена файлов передаются на этот скрипт по URL-адресу. Или вы используете некоторые функции веб-сервера, такие как mod_rewrite, чтобы заставить тип:

 RewriteEngine on RewriteRule ^download/ - [L,T=application/octet-stream] 

Немного другой стиль и готов к работе 🙂

 $file = 'folder/' . $name; if (! file) { die('file not found'); //Or do something } else { // Set headers header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$file"); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); // Read the file from disk readfile($file); }