Я не могу получить полный физический путь к выбранному файлу - PullRequest
1 голос
/ 20 марта 2010

Я хочу полный путь к выбранному файлу, используя GWT, используя FileUpload.Вы можете мне помочь?

Ответы [ 2 ]

3 голосов
/ 20 марта 2010

Нет способа получить путь к файлу со стороны клиента из-за безопасности браузера политика. Вы должны сделать это через подписанный Java-апплет или получить его от вашего сервлет.

fileUpload.getFilename может возвращать или не возвращать полный путь. Зависит от браузера

2 голосов
/ 20 марта 2010

Тебе это не нужно. Представь, что я - клиент, а ты - сервер. Я даю вам полный путь к файлу "C: / My Documents / passwords.txt", как вы, будучи сервером, можете программно получить доступ к содержимому файла? С new File("C:/My Documents/passwords.txt") может быть? Нет, подумайте логически, это не сработает, поскольку мы оба работаем на физически разных машинах . Информация о полном пути бесполезна .

Загрузка файла HTML фактически отправляет содержимое файла с клиента на сервер, обычно вместе только с именем файла. Вам просто нужно получить содержимое как InputStream на FileItem#getInputStream() или просто записать его на диск напрямую с помощью FileItem#write(). согласно FileUpload Руководство пользователя .

Вы можете получить единственное имя файла по FileItem#getName(), но некоторые веб-браузеры отправляют полный путь к файловой системе на стороне клиента, например, Internet Explorer и Opera. Это неправильно . Вам нужно обрезать путь на FilenameUtils#getName() согласно FileUpload FAQ .

(кстати, весь код синего цвета кликабелен и указывает на Javadocs, я настоятельно рекомендую вам также научиться его читать / интерпретировать, именно они предоставляют всю необходимую вам информацию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...