GWT:fileUpload.getFileName()& fakepath

时间:2011-06-21 07:59:07

标签: java gwt cross-platform

我正在开发一个GWT项目(Web应用程序):

在某些时候,用户可以通过FormPanel通过应用程序上传文件。

因为我需要文件名,我以为我可以使用:

    FileUpload upload = new FileUpload();
    // ...
    String name = upload.getFileName();

name原来是这样的:C:\fakepath\whatever.txt

这是跨平台吗?其他操作系统会发生什么(我正在使用Windows)?

1 个答案:

答案 0 :(得分:5)

上传表单返回的名称取决于浏览器的安全设置。

在Windows上,C:\ fakepath用于模糊文件实际所在的位置。但是,文件名始终保留。

在其他操作系统上也会发生同样的事情,它不会是C:\ fakepath(例如,不再100%确定linux可以返回的内容)。

我目前正在研究基于GWT的系统,使用FileUpload;并且文件名在任何使用过的客户端上都没有错(只有不同​​的(假的)路径)。这用于Windows,Ubuntu和OS / x。您可以通过分隔最后一个“/”或“\”来安全地获取正确的文件名(请注意每个操作系统有所不同),或者使用getFileName方法:)。