Просьба оставить комментарий





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

пятница, 21 октября 2011 г.

Принудительная загрузка файлов (например 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>

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

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

Комментариев нет:

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