使用http协议,java和javascript下载大文件> 1GB

我有一个用于下载文件的Web应用程序。 一切正常,除非我想下载超过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 }); 

客户端:我在客户端上成功获取数据,但是当我将其设为Blob时,如果数据大小超过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(); 

您是否尝试过使用IOUtils中的copyLarge()方法? 对于复制()方法,JavaDoc说:

“对于大型流,使用copyLarge(InputStream,OutputStream)方法。”