2010-10-03 3 views
3


Каковы шаги, необходимые для включения веб-приложения Java (разработанного с использованием Spring + Wicket) для принятия загрузки файлов клиента в конкретный каталог на сервере.
В то время как Googling для ответов на этот вопрос я вижу предложения о том, что/WEB-INF/some-directory следует использовать в качестве места для загрузки?
Является ли причина этой передовой практики?
Является ли это место доступным для записи в веб-приложении?
Что происходит с этим местоположением при развертывании новой версии веб-приложения? Может ли/использовать какой-либо другой каталог?
БлагодаряЗагрузка файлов в Spring + Wicket

ответ

1

Две возможные причины для использования в подкаталоге WEB-INF:

  • не видно через HTTP

  • приложение обычно имеет доступ на запись к нему

Я бы предпочел использовать настраиваемый внешний каталог (например, сконфигурированный в контексте параметра o r en файл конфигурации приложения); таким образом, у вас есть мелкозернистый контроль над разрешениями каталога.

AFAIK, загрузка файла в Wicket обеспечивается компонентом FileUploadField, который дает вам FileUpload объект который вы можете writeTo файл на вашем сервере.

Возможно, вам также понадобится настроить/проверить максимальный размер файлов, которые вы хотите принять. В Tomcat это делается через атрибут maxPostSize коннектора (см. The HTTP Connector)

+3

Сохранение загруженных файлов в собственной файловой структуре webapp является большим ** no-no **, потому что 1) Это не работает, когда контейнер isn 't настроен на расширение WAR. 2) Все загруженные файлы теряются при повторном развертывании WAR или даже при перезапуске сервера. – BalusC

Смежные вопросы