我使用PrimeFaces v3.5在我的windows机器上使用Firefox浏览器上传文件。event.getFile().getFileName()
返回带有完整路径的文件名,这进一步导致了问题。在内部,PrimeFaces使用Apache commons。我也检查了javadoc,但没有帮助我了。
为了解决这个问题,我对程序做了如下修改——
String fileName = event.getFile().getFileName();
fileName = fileName.substring(fileName.lastIndexOf("\"));
但它并不健壮和可靠。有什么建议吗?
Commons IO提供FilenameUtils#getName()
正是为了这个目的。
String filename = FilenameUtils.getName(event.getFile().getFileName());
参见:
- Commons FileUpload常见问题解答 如何在JSF中保存上传的文件