2016-01-04 49 views
1

我有一個用於下載文件的Web應用程序。一切工作正常,除非我想下載超過1GB的文件。使用http協議,java和javascript下載大文件> 1GB

這是我的Java代碼:

InputStream in = new FileInputStream(new File(folderFile.getAbsolutePath())); 
       org.apache.commons.io.IOUtils.copy(in, response.getOutputStream()); 
       response.flushBuffer(); 
       in.close(); 

HTTP請求:

$http({ 
      method:'get', 
      url:this.apiDownloadFileUrl, 
      responseType:'arraybuffer', 
      cache: false 
    }); 

這裏是客戶端:我得到的數據成功地在客戶端,但當我讓斑點,如果數據大小超過500MB,什麼都沒有發生,並且沒有被下載。另外,我可以下載300MB ...

如何檢查是內存問題還是服務器問題? ...當我從gmail下載時,我可以下載1GB以上的內容。

  .success(function(databack) {  
          var file = new Blob([ databack ], { 
           type : 'application/csv' 
          }); 

          var fileURL = window.URL.createObjectURL(file); 
          var a = document.createElement('a'); 
          a.href = fileURL; 
          a.target = '_blank'; 
          a.download = data; 
          document.body.appendChild(a); 
          a.click(); 
+0

相關信息[下載大數據流(> 1Gb)使用javascript](http://stackoverflow.com/questions/42614880/download-large-data-stream-1gb-using-javascript) – guest271314

回答

0

您是否嘗試過使用IOUtils的copyLarge()方法?對於JavaDoc的copy()方法:

「對於大型流使用copyLarge(InputStream,OutputStream)方法。」