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

Din*_*han 9 java servlets apache-commons

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

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

Jos*_*seK 22

试试文档说的内容

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

Internet Explorer提供上载文件的完整路径,而不仅仅是基本文件名.由于FileUpload完全提供客户端(浏览器)提供的内容,因此您可能希望在应用程序中删除此路径信息.您可以使用Commons IO中的以下方法(您已经拥有它,因为它由FileUpload使用).

String fileName = item.getName();
 if (fileName != null) {
     fileName = FilenameUtils.getName(fileName);
 }
Run Code Online (Sandbox Code Playgroud)