2012-07-05 67 views
1

在我的GWT應用程序中,我寫了一個servlet來下載/流式傳輸PDF文件。GWT進度條,同時在瀏覽器上顯示之前緩衝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和任何幫助將不勝感激。

謝謝。

回答

0

這不能與同步的要求,我們通常通過調用servlet的與Window.open你必須讓Ajax請求來計算進度並顯示響應作出來完成。

查看該圖書館:http://code.google.com/p/gwtupload/。在大多數瀏覽器中使用和使用都很簡單。它使用ajax請求來計算進度。

+0

可以請你一個簡單的例子提供。我看看這個庫看起來像是用來上傳而不是下載的。 – Harshad 2012-07-06 19:07:18

相關問題