Веб-приложение Java на Tomcat - отображение файла, загруженного пользователем - PullRequest
0 голосов
/ 07 января 2011

Мне нужно отобразить загруженные файлы в веб-приложении, процесс выглядит следующим образом

  1. Пользователь загружает файл через веб-интерфейс
  2. Проверка на изображении
  3. Звонит на imageRepository.store( uploadedImage, user.getSite() )
  4. Пользователь хочет отображаемое изображение, которое добавляет <img src="${anUploadedImage.getUrl()}"/>

но вот где я застрял, что может getUrl() сделать? Простое решение - поместить его куда-нибудь и позволить Apache обслуживать файл, но тогда я не могу использовать приложение, чтобы гарантировать, что один пользователь не изменяет URL для просмотра файлов других пользователей, что в данном случае важно

1 Ответ

0 голосов
/ 07 января 2011

У вас есть пара опций, если вы хотите управлять путем к файлу.

  1. Вы можете создать службу для возврата файла по идентификатору.По сути, это действие контроллера (или сервлет) будет загружать образ обратно из хранилища репозитория и сериализовать его обратно пользователю.Это обеспечивает максимальный контроль.
  2. Вы можете создать фильтр, который будет выполнять необходимый элемент управления, а затем делегировать его обратно на веб-сервер для выполнения фактического обслуживания файлов.Это все еще дает вам контроль, но снимает с вас ответственность за эффективную сериализацию файла.

Единственное, что я хотел бы проверить (так как я не уверен, какой тип ${anUploadedImage}is) - это то, что возвращает getUrl().Если это объект File, то getUrl() предоставляет URL файла, который бесполезен в HTML.По сути, веб-браузер будет искать диск пользователя или сообщать о какой-то подозрительной активности.

URL, который вы включаете в свой HTML, должен указывать, куда ваша служба отправит желаемое изображение.

...