gpt4 book ai didi

java - GWT:如何实现文件下载

转载 作者:行者123 更新时间:2023-12-01 14:19:24 24 4
gpt4 key购买 nike

我是 GWT 和一般 Web 应用程序的新手。

我正在制作一个 GWT 网络应用程序。它提供的一项功能是通过单击网页上的按钮来下载文件。不幸的是,文件本身并不位于服务器端。服务器端需要通过对另一个 Web 服务的 REST 调用来获取它,以获取文件的 InputStream。

我的问题是:

  1. 如何将流传递到客户端以便浏览器可以开始下载?
  2. 我是否必须在开始之前将文件物理写入服务器?

非常感谢

编辑:我找到了这个例子: How to use GWT when downloading Files with a Servlet?

在本例中,文件物理上位于服务器端。我通过流从 Web 服务获得的文件非常大,我不想将它们保存在我的 GWT 服务器端。有什么建议吗?

最佳答案

我们使用与上面示例类似的 servlet。只需确保将标题和文件名设置为适当的类型即可。 (文件名必须以正确的结尾结尾)

// process the data (In your case go get it)
byte[] data = generateReturnBuffer();
// do not cache
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
// content length is needed for MSIE
response.setContentLength(data.length);
// set the filename and the type
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment;filename=" + "fileName.pdf");
ServletOutputStream out = resp.getOutputStream();
out.write(data);
out.flush();

其中响应​​是 servlet HttpServletResponse。
Look here for the valid mime types .
在某些时候,您需要将数据存储在文件或内存中,因为某些版本的 Internet Explorer 需要文件长度。

关于java - GWT:如何实现文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com