Принудительная загрузка файлов (например pdf)

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

Собственно сама технология очень проста на практике, допустим папки с именем сессии пользователя создаются на сервере сайта в папке temp/ , то есть temp/45asd454sfdg123/file.pdf , в таком случае достаточно в папке temp создать файл .htaccess со следующим содержимым

    <files *.mp3>
    forceType application/octet-stream
    Header set Content-Disposition attachment
    </files>

   <files *.pdf>
    forceType application/octet-stream
    Header set Content-Disposition attachment
    </files>
   
    <files *.doc>
    forceType application/octet-stream
    Header set Content-Disposition attachment
    </files>
   
    <files *.txt>
    forceType application/octet-stream
    Header set Content-Disposition attachment
    </files>

    <files *.jpg>
    forceType application/octet-stream
    Header set Content-Disposition attachment
    </files>

Вложенные в эту папку каталоги с именем сессии просто наследуют инструкции родительской и присваивают эти свойства.

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

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Работа с phpbb3 из сторонних скриптов php: Часть 2 Создание поста

Вывод последних сообщений форума phpbb3 на сторонний сайт

Phpbb3 и Loginza: Ошибки возникающие при интеграции