2016-11-19 60 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

相关问题