Как загрузить папку в веб-приложении - PullRequest
2 голосов
/ 21 октября 2011

Я занимаюсь разработкой простого приложения с использованием JSF с richfaces. Я хочу загрузить папку (выберите только папку).

Я пытался, t: inputFileUpload и rich: fileUpload .
но оба компонента - только файл поддержки. Не поддерживается выбор папки.

Можно выбрать папку.

Помоги мне. заранее спасибо

1 Ответ

5 голосов
/ 21 октября 2011

Стандартный HTML <input type="file"> уже не может это сделать. Таким образом, <t:inputFileUpload>, который просто отображает именно этот элемент HTML, не подлежит сомнению. Кроме того, Flash также не позволяет выбирать папки из-за ограничений безопасности. Итак, о <rich:fileUpload> также не может быть и речи.

Ваш лучший выбор - использовать Java-апплет, который использует Swing JFileChooser, который позволяет вам выбрать каталог. Затем можно написать некоторый код Java, который собирает все файлы в этой папке и загружает его на серверную сторону с помощью URLConnection или HttpClient . Затем вы просто встраиваете этот апплет в свою JSF-страницу обычным простым HTML / JS-способом. Вместо того, чтобы заново изобретать колесо апплета, вы также можете использовать существующий сторонний апплет, такой как JumpLoader или JUpload . Оба поддерживают загрузку целых каталогов.

Наконец, вы должны интегрировать его в сочетании с простым ванильным сервлетом, использующим Apache Commons FileUpload для анализа запросов на загрузку файлов из апплета. Чтобы позволить ему взаимодействовать с JSF, вы можете сохранить какой-то уникальный атрибут в сеансе или использовать управляемый компонент JSF в рамках сеанса, который также доступен в сервлете. Я не уверен, поддерживает ли JumpLoader или JUpload это, но технически возможно позволить апплету обновить страницу с помощью JavaScript (что позволяет осуществлять связь applet-JSF с помощью JS / Ajax).

Нет, не приходит в голову какой-либо сторонний компонент JSF, который выполняет ту же работу.

...