簡體   English   中英

使用 http 協議、java 和 javascript 下載大於 1GB 的大文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM