2014-09-11 82 views
1

通過以下鏈接PLUNKER。我想顯示在新窗口中的PDF文件,但我想從服務器讀取PDF文件從服務器檢索pdf文件流

我的服務代碼

@RequestMapping(value = "/retrievePDFFile", method = RequestMethod.GET) 
public @ResponseBody 
InputStream retrievePDFFile() throws FileNotFoundException 
{ 
    InputStream inputStream = new FileInputStream("/resources/AngularJS 2013.pdf"); 
    return inputStream; 
} 

我的角度控制器

$http({ 
    method : "GET", 
    url : "/service/retrievePDFFile" 
}).success(function(data) { 
    console.log(data); 
}).error(function(data, status) { 
    console.log(data); 
}); 

我得到的PDF輸入流從這樣的服務器..

如何閱讀此文件,並在新標籤頁或窗口中打開爲PDF文件..

感謝

PDF INPUT STREAM

+0

實現的目標,我不知道你做了什麼錯誤。當我點擊「This Does Work」按鈕時,我在Chrome中遇到了彈出窗口阻止警告。當我允許彈出窗口時,它會打開並正確顯示文件。你檢查過了嗎? – 2014-09-11 06:27:28

+0

在那個plunker他們直接調用pdf文件url,在我的情況下,我從服務器得到pdf流..我剛剛更新我的帖子 – Lakshman 2014-09-11 07:13:31

回答

1

很多搜​​索後,我一點一點的變化在我的控制器代碼

$http.get('/retrievePDFFiles', {responseType: 'arraybuffer'}) 
     .success(function (data) { 
      var file = new Blob([data], {type: 'application/pdf'}); 
      var fileURL = URL.createObjectURL(file); 
      window.open(fileURL); 
    });