【发布时间】:2016-08-01 16:34:20
【问题描述】:
我有一个队列,当用户选择文件时,文件将被添加到队列中,这些文件可能会或可能不会立即选择
问题是,在开始上传时,每个文件都打开单独的 XHR 连接和单独的请求,这不可行,主要有 2 个原因,如果用户选择 100 个文件,将有 100 个并发连接!!,以及 2,如果连接失败,整个上传将失败,我尝试了不同的方法,但它们都不起作用,有什么解决方法吗?也许限制并发上传?我不认为这是一个选项,因为它只适用于分段上传
这里有一些关于我在做什么的信息
我没有使用多部分(使用分块上传)。
用户可以从不同的目录中选择文件(我的意思是他/她可以在每次他/她想要的时候点击输入并将文件附加到队列中)。
这是我正在使用的代码:
// Upload queue array
var filesList = new Array();
$('#fileupload').fileupload({
url: 'http://example.com/listener',
maxChunkSize: 200000000,
multipart: false,
autoUpload: false,
limitConcurrentUploads: 3,
add: function(e, data) {
// Just for rendering html table
$.each(data.files, function(index, file) {
$('#files table>tbody').append('<tr><td>' + file.name + '</td><td>' + humanFileSize(file.size) + '</td></tr>');
});
// Add to fileList array
filesList.push(data);
}
}).prop('disabled', !$.support.fileInput).parent().addClass($.support.fileInput ? undefined : 'disabled');
// Start upload button
$(document).on('click', '#startup', function() {
filesList.forEach(function(data) {
data.submit();
});
});
// Clear queue button
$(document).on('click', '#clearqueue', function() {
$('#files table>tbody').html('');
// Clear queue
filesList.length = 0;
// Replace file input element
$("#fileupload").replaceWith($("#fileupload").val('').clone(true));
});
【问题讨论】:
标签: javascript jquery jquery-file-upload jqxhr