Получить полный путь к выбранному файлу в JSF

Мне нужна кнопка JSF, которая позволяет пользователю просматривать и выбирать определенный файл, а затем мне нужна моя программа, чтобы получить полный путь к файлу.

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

Сейчас я использую тег h:inputFile.

 <h:inputFile id="file" value="#{TrainingDirectoryBean.file}"></h:inputFile>

Мой бин: TrainingDirectoryBean имеет следующее свойство

protected Part file;

Но я не могу получить полный путь от этого. Каково решение?

1 ответ

Решение

JSF <h:inputFile> компонент генерирует HTML <input type="file"> элемент, который официально может отправлять только содержимое файла вместе с единственным именем файла - хотя некоторые браузеры, особенно тот, который был разработан какой-то командой в Редмонде, также отправляют полный путь к файлу вместе с именем файла из-за ошибки безопасности; на который, следовательно, не следует полагаться, так как это может быть исправлено и удалено в будущих версиях.

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

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

Другие вопросы по тегам