Принудительная загрузка файлов (например 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>
Вложенные в эту папку каталоги с именем сессии просто наследуют инструкции родительской и присваивают эти свойства.
И файлы этих форматов будут принудительно загружаться на компьютер пользователя при переходе пользователя по ссылке на скачивание файла.
Собственно сама технология очень проста на практике, допустим папки с именем сессии пользователя создаются на сервере сайта в папке 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>
Вложенные в эту папку каталоги с именем сессии просто наследуют инструкции родительской и присваивают эти свойства.
И файлы этих форматов будут принудительно загружаться на компьютер пользователя при переходе пользователя по ссылке на скачивание файла.
не помогло
ОтветитьУдалить