Spring MVC – Пример контроллера для скачивания файлов

Немного теории

В Spring MVC приложении, что бы скачать файл через браузер нужно выполнить следующие условия:

  1. Ничего не возвращаем, в сигнатуре будет void  и добавим HttpServletResponseв качестве аргумента метода.
  2. Определить в HttpServletResponse content type (далее тип содержимого) на тип содержимого нашего файла. Если вы не знаете, что такое тип содержимого, или хотите, чтобы браузер всегда отображал диалоговое окно «Сохранить как», установите его APPLICATION/OCTET-STREAM (не чувствителен к регистру)
  3. Добавить заголовок ответа HTTP с именем Content-Disposition и присвойте ему значение attachment; filename=fileName, где fileName — имя файла по умолчанию.

Контроллер скачивания файла

Рассмотрим пример реализации контроллера загрузки файлов, в моем случае Excel документы.

[stextbox id=’info’]Если вы хотите включить загрузку только для авторизованных пользователей, сначала проверьте имеет ли пользователь доступ к этому методу, а затем разрешите загрузку в противном случае стоит перенаправить его на экран входа в систему[/stextbox]

Предотвращение перекрестных ссылок на файлы

Другие сайты могут использовать перекрестные ссылки на ваши файлы используя их(файлы) как свои. Мы можем запретить подобные случаи. Чтобы запретить все запросы на загрузку из других доменов, вы можете проверить, содержит ли заголовок referer ваше доменное имя.

Наш модифицированный FileController отправит файлы в браузер, только если заголовок referer не равен null. Это предотвратит загрузку изображений напрямую, введя их URL-адреса в браузере или запрос, поступающий из других доменов.

 

Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
старым
новым колличеству голосов
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Leo Dev Blog | LD
Обзор конфиденциальности

На сайте используются обязательные и аналитические файлы cookie.

Обязательные cookie необходимы для корректной работы сайта.

Аналитические cookie используются для анализа посещаемости и улучшения работы сайта.

Вы можете изменить настройки использования cookie.