ファイルを選択したときにファイルがキューに追加されると、このファイルがすぐに選択されることがあります。Jqueryファイルで複数ファイルのアップロードを処理する方法
問題は、アップロードの開始時に、各ファイルが別々のXHR接続と別々の要求を開くことです。これは2つの主な理由でOKではない、ユーザーが100ファイルを選択した場合、100の同時接続!!接続が失敗し、アップロード全体が失敗し、私は別のものを試しましたが、どれも動作しませんでしたが、これに対する回避策はありますか?並行アップロードを制限することがありますか?それだけで(チャンクのアップロードを使用して、私はマルチパートを使用していないよ
をやっているかについていくつかの情報をここで
アップロードマルチパートで働くあるので、私はそれはオプションだとは思いません)。
ユーザは別のディレクトリからファイルを選択することができます(希望するたびに入力をクリックしてファイルをキューに追加することができます)。
そして、ここで私が使用しているコードです:
// 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));
});
感謝、私は、順次アップロードをしたくない、私は、同時接続のアップロードをしたいが、(limitConcurrentUploadsのような)アクティブな接続を制限します。そして、あなたは "ファイル処理オプション"が私のキューハンドラのより良い解決策だと思いますか? (今使っていた "fileList"配列の代わりに) – Mojbala
私は 'limitConcurrentUploads'が動作するはずなので、理解できません。それはあなたのために働いていないのですか? – p1100i
いいえ動作しない:-(私は分かりませんが、問題はforeachがキューを送信するためのファイルをforeachしていると思いますが、fileList配列の代わりにキューを処理する解決策が見つかったら、 '' 'limitConcurrentUploads '' 'うまくいく... – Mojbala