仅从FileItem的名称中提取文件名

时间:2011-09-14 06:08:53

标签: java servlets apache-commons

在apache commons文件中,上传上传的文件可用作FileItem对象 如果我使用fileitem.getName()获取此类文件的名称,则返回完整路径(例如:C:\Test\test.txt)。

有没有办法只获取文件名。
我真正需要的是使用File.createTempFile()将上传的文件保存为临时文件
但临时文件的名称和扩展名应与上传的文件相同,而不是随机名称(如temp.tmp

1 个答案:

答案 0 :(得分:22)

尝试the docs say

  

为什么FileItem.getName()返回整个路径,而不仅仅是   文件名?

     

Internet Explorer提供上传文件的完整路径   不仅仅是基本文件名。由于FileUpload提供了什么   由客户端(浏览器)提供,您可能想要删除此路径   申请中的信息。您可以使用以下方法执行此操作   Commons IO的方法(你已经拥有,因为它被使用了   上传文件)。

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