[英]Download large file >1GB using http protocol, java and 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
});
這是客戶端:我在客戶端成功獲取了數據,但是當我制作 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()方法? 對於 copy() 方法,JavaDoc 說:
“對於大型流,請使用 copyLarge(InputStream, OutputStream) 方法。”
您應該首先檢查響應消息,並決定哪一方引發問題。 根據我的經驗,你應該檢查文件是否被瀏覽器緩存而不是任何問題~
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.