如何使用GWT将文件从服务器下载到本地驱动器

时间:2013-02-27 11:25:37

标签: gwt

我想要的是用户可以在他的本地驱动器中选择一个完整的路径,然后一个文件(现在我的应用程序的war文件夹中)将保存在所选的用户位置

我在GWT中使用文件上传来上传我的文件,它的工作正常,我还会使用FileUpload进行下载吗?

另外对于第二个选项,如果有可能获得用户选择的位置,例如d:\ downloadfolder,我的问题将解决,我将完成其余的工作!

下面是上传的代码,请帮我下载

final String UPLOAD_ACTION_URL = GWT.getModuleBaseURL() + "upload";
initWidget(panelImages);
final FormPanel form = new FormPanel();
form.setAction(UPLOAD_ACTION_URL);

form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);

VerticalPanel panel = new VerticalPanel();
form.setWidget(panel);

FileUpload upload = new FileUpload();
upload.setName("uploadFormElement");
panel.add(upload);

// Add a 'submit' button.
panel.add(new Button("Submit", new ClickHandler() {
    public void onClick(ClickEvent event) {
        form.submit();
    }
}));

form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
    public void onSubmitComplete(SubmitCompleteEvent event) {
        if(event.getResults().contains("DataBase Restored")){
            Window.alert("Database Restored !");
        }
    }
});

panelImages.add(form);

1 个答案:

答案 0 :(得分:0)

您无法从GWT执行此操作,因为JavaScript无法访问本地硬盘驱动器。您可以做的最好是正常启动下载(例如,显示用户可以单击的文件的链接)。根据他们的浏览器设置,他们可以选择文件的位置,也可以将其下载到某个默认位置。你只能用JavaScript知道这个位置。

如果这是项目要求,我认为你需要包含一个比较重的插件,如java或flash。