如何使用GWT客户端下载文件?

8
什么是使用GWT客户端下载pdf文件的最佳方式?我应该调用普通servlet来完成吗?还是有不同的首选方法来处理这个问题?
我对GWT很陌生,如果有一些示例代码将非常有帮助。
谢谢 Deep
3个回答

4

使用GET方法尝试...

Window.open(GWT.getHostPageBaseURL() + "FileRepository/doDownload?docId=" + dokument.getId(), "", "");

谢谢。使用这种方法,我可以访问不在WAR根目录中的任何文件吗? - DG.

1

您可以实现一个Servlet来下载文件,或者使用Data URIs来实现:

  1. 使您的GWT RPC方法返回文件内容或生成文件的数据。
  2. 在客户端上,使用接收到的文件内容格式化Data URI或生成数据内容。
  3. 使用Window.open打开文件保存对话框,传递格式化的DataURI

请参考以下链接,了解Data URI的用法:

在jQuery中导出为csv


它不再起作用了,控制台显示: “不允许将顶部帧导航到数据URL…” 在Edge上检查过了。 - Nikolai Varankine

0

最好的方法是将您的浏览器导航到该文件

在下载按钮上添加点击处理程序:

Button downloadButton = new Button("Download");
downloadButton.addClickHandler(new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {
        Window.open("url_of_file", "download File", "");            
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接