2016-11-19 56 views
0

我在web.config中配置了maxrequestlength = 10MB。但是在我的系統中有一個導入.csv.csv的功能,我的客戶導入的功能可以超過10MB。所以,我需要一個性能良好的模式發送一個大的json(導入的json)。發送大型json到服務器的最佳模式

我想到zip或發送json在部分。什麼是最好的模式?

是否有其他形式更有效?

回答

1

使用文件API(https://www.html5rocks.com/tutorials/file/dndfiles/),我們可以最大限度地減少上傳大文件的工作量。該技術是將上傳分成多個塊,爲每個部分產生一個XHR,並將該文件放在服務器上。這與GMail如何快速上傳大型附件類似。這種技術也可用於解決Google App Engine的32MB http請求限制。

function upload(blobOrFile) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('POST', '/server', true); 
    xhr.onload = function(e) { ... }; 
    xhr.send(blobOrFile); 
} 

document.querySelector('input[type="file"]').addEventListener('change', function(e) { 
    var blob = this.files[0]; 

    const BYTES_PER_CHUNK = 1024 * 1024; // 1MB chunk sizes. 
    const SIZE = blob.size; 

    var start = 0; 
    var end = BYTES_PER_CHUNK; 

    while(start < SIZE) { 
    upload(blob.slice(start, end)); 

    start = end; 
    end = start + BYTES_PER_CHUNK; 
    } 
}, false); 

})(); 

這裏沒有顯示的是重構服務器上的文件的代碼。

P.S.因爲像http://underscorejs.org/#zip這樣的功能也可以使用。

+0

我會測試這個例子。謝謝 – user3352698

相關問題