GWT: fileUpload.getFileName () & fakepath - PullRequest
5 голосов
/ 21 июня 2011

Я работаю над проектом GWT (веб-приложение):

В какой-то момент пользователи могут загрузить файл через приложение через FormPanel.

Поскольку мне нужно имя файла, ядумал, что смогу использовать:

    FileUpload upload = new FileUpload();
    // ...
    String name = upload.getFileName();

И name оказывается примерно таким: C:\fakepath\whatever.txt.

Является ли это кроссплатформенным?Что происходит в других ОС (я использую Windows)?

1 Ответ

5 голосов
/ 21 июня 2011

Имя, возвращаемое формой загрузки, зависит от настроек безопасности браузера.

В Windows C: \ fakepath используется, чтобы скрыть, где файл находится на самом деле. Имя файла, однако, всегда сохраняется.

То же самое может произойти и в других ОС, это не будет C: \ fakepath (например, я не уверен на 100%, что может вернуть linux).

В настоящее время я тоже работаю над системой на основе GWT, используя FileUpload; и имя файла не было неправильным ни на одном из используемых клиентских ОС (только разные (поддельные) пути). Это использовалось в Windows, Ubuntu и OS / x. Вы должны быть в состоянии безопасно получить правильное имя файла, разделив их последними символами "/" или "\" (обратите внимание, что они различаются для разных ОС), или используйте для этого метод getFileName:).

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