【发布时间】:2012-07-05 17:32:17
【问题描述】:
在我的 GWT 应用程序中,我编写了一个 servlet 来下载/流式传输 PDF 文件。
以下是代码。
protected void updateResponse(HttpServletResponse response, InputStream dataStream, long contentLength, KnownContentTypes contentType, String filename, int cacheSeconds) {
response.setHeader("Content-Type", contentType.getTypeString());
response.setHeader("Content-Length", String.valueOf(contentLength));
response.setHeader("Content-disposition", "inline;filename=" + filename);
response.setHeader("Cache-Control", "max-age=" + cacheSeconds);
byte[] buffer = new byte[BUFFER_SIZE];
try {
ServletOutputStream out = response.getOutputStream();
while ((dataStream.read(buffer)) != -1) {
out.write(buffer);
}
} catch (IOException e) {
sendError(response);
}
}
pdf 在浏览器上成功呈现。 问题是一些 pdf 的大小真的很大,因为这是在 window.open 上调用的,所以我看到的只是一个空白浏览器。
我想显示一条动态消息,例如“已下载 1MB 的 5MB”,并在流式传输所有字节后显示/渲染整个 PDF 文件。
请告诉我该怎么做。 我是 GWT 的新手,我们将不胜感激。
谢谢。
【问题讨论】:
标签: gwt servlets download progress-bar