Основные вопросы о загрузке файлов в JSF

Я никогда не использовал функцию загрузки в JSF, но теперь я должен. У меня есть пара вопросов, и они из серии "для чайников". Так:

1) Авторизовались картинки пользователей в БД или в файловую систему сервера?

2) Если для сервера относительный или фиксированный путь или корневой URL-адрес для db/properties и относительная часть для db тоже?

3) Если для БД, как производительность при использовании JPA2 + Mysql? Какие минусы в остальном?

4) Безопасно ли при использовании сервера добавлять новый контекст для изображений в server.xml и использовать изображения с адреса www.examble.com/imagesfolder/images.jpg? Как избежать ситуации, когда картинки видят все?

5) Как лучше всего обрабатывать загрузку? Я использую Primefaces, подходит ли он для этой цели или для чего-то другого?

6) Любой хороший учебник или примеры, как сделать это как профессионал :)?

7) Как избежать ситуации, когда могут быть файлы с одинаковыми именами? Хэширование имен или?

8) Что если (очень большое если) я решу расшарить свое приложение на два физических сервера, проблемы с путями к картинкам?

9) В моем случае у меня есть фотографии, которые являются общими для всех, и фотографии, принадлежащие зарегистрированным пользователям. Как бы вы это реализовали и почему, если вы знаете, что я использую Primefaces, JPA2 и Mysql, и у меня есть неограниченное пространство в сервер?

10) Всем очень красивого и жаркого лета!!

саамы


person Sami    schedule 29.06.2012    source источник


Ответы (1)


Большинство ваших вопросов касаются того, что делать с файлом после загрузки, это вопрос дизайна и будет зависеть от архитектора программного обеспечения, руководителя группы или, в последнем случае, от вас самих. Есть два хороших ответа для сохранения файла файловой системы/базы данных сервера:

Для решения проблем, описанных в «7)» и «8)», вы должны использовать файловый сервер и системы управления контентом. Они также добавляют больше преимуществ, чем просто хранение файлов, таких как поиск, индексирование и многое другое. Вот некоторые примеры:

Чтобы реализовать загрузку файлов с помощью JSF (Примечание: чтобы сделать это как профессионал, следуйте профессиональным способам):

Попробуйте эти образцы. Если у вас есть проблемы с кодированием, было бы лучше задать новый вопрос.

РЕДАКТИРОВАТЬ: я забыл номер 4, спасибо за напоминание. Я бы добавил новый контекст, как вы сказали, и создал фильтр, который будет перехватывать запросы для этого нового контекста и перенаправлять на URL-адрес по умолчанию.

Подробнее по этому вопросу:

person Luiggi Mendoza    schedule 30.06.2012
comment
Что вы думаете о числе 4? Есть ли безопасный способ использовать метод добавления нового контекста? Я прочитаю все это и начну реализовывать сегодня, поэтому, возможно, после этого я спрошу что-то более точное. Спасибо! Я думаю, что я буду использовать сервер вместо БД, в моем случае для этого есть несколько веских причин. - person Sami; 02.07.2012
comment
@ Сами, извините, я забыл сказать вам, что обновил свой ответ. Надеюсь, это решит ваши вопросы :). - person Luiggi Mendoza; 05.07.2012