Извлечь только имя файла из имени FileItem - PullRequest
9 голосов
/ 14 сентября 2011

При загрузке файлов в Apache Commons загруженные файлы доступны как объекты FileItem.Если я получаю имя такого элемента файла с помощью fileitem.getName(), он возвращает полный путь (например: C:\Test\test.txt).
Есть ли способ получить только имя файла.Что мне действительно нужно, это сохранить загруженный файл как временный файл, используя File.createTempFile()но имя и расширение временного файла должны совпадать с загружаемым файлом, а не случайным именем (например, temp.tmp)

1 Ответ

22 голосов
/ 14 сентября 2011

Попробуйте, что в документах говорится

Почему FileItem.getName () возвращает весь путь, а не только имя файла?

Internet Explorer предоставляет полный путь к загружаемому файлу, а не только базовое имя файла.Поскольку FileUpload предоставляет именно то, что было предоставлено клиентом (браузером), вы можете удалить эту информацию о пути в вашем приложении.Вы можете сделать это, используя следующий метод из Commons IO (который у вас уже есть, так как он используется FileUpload).

String fileName = item.getName();
 if (fileName != null) {
     fileName = FilenameUtils.getName(fileName);
 }
...