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