我正在开发一个 GWT 项目(网络应用程序):
有时,用户可以通过应用程序通过 FormPanel 上传文件。
因为我需要文件名,所以我想我可以使用:
FileUpload upload = new FileUpload();
// ...
String name = upload.getFileName();
name
结果是这样的:C:\fakepath\whatever.txt
。
这是跨平台的吗?在其他操作系统(我使用的是 Windows)上会发生什么情况?
最佳答案
上传表单返回的名称取决于浏览器的安全设置。
在 Windows 上,C:\fakepath 用于隐藏文件的实际位置。但是,文件名始终保留。
在其他操作系统上也可能发生同样的情况,它不会是 C:\fakepath(例如,不再 100% 确定 linux 可以返回什么)。
我目前也在基于 GWT 的系统上工作,使用 FileUpload
;并且文件名在任何使用过的客户端操作系统上都没有错(只有不同的(假)路径)。这用于 Windows、Ubuntu 和 OS/x。您应该能够通过分隔最后一个“/”或“\”来安全地获取正确的文件名(请注意,它们因操作系统而异),或者为此使用 getFileName
方法:).
关于java - GWT : fileUpload. getFileName() & fakepath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422103/