我正在开发一个GWT项目(Web应用程序):
在某些时候,用户可以通过FormPanel通过应用程序上传文件。
因为我需要文件名,我以为我可以使用:
FileUpload upload = new FileUpload();
// ...
String name = upload.getFileName();
name
原来是这样的:C:\fakepath\whatever.txt
。
这是跨平台吗?其他操作系统会发生什么(我正在使用Windows)?
答案 0 :(得分:5)
上传表单返回的名称取决于浏览器的安全设置。
在Windows上,C:\ fakepath用于模糊文件实际所在的位置。但是,文件名始终保留。
在其他操作系统上也会发生同样的事情,它不会是C:\ fakepath(例如,不再100%确定linux可以返回的内容)。
我目前正在研究基于GWT的系统,使用FileUpload
;并且文件名在任何使用过的客户端上都没有错(只有不同的(假的)路径)。这用于Windows,Ubuntu和OS / x。您可以通过分隔最后一个“/”或“\”来安全地获取正确的文件名(请注意每个操作系统有所不同),或者使用getFileName
方法:)。