在我的 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 的新手,任何帮助都将不胜感激。
谢谢。