Works with any backend npm install Zero dependencies

Concurrent File Uploads

Upload multiple files simultaneously by increasing the concurrency setting.

(function() {
 var uploader = new MultipleUpload('#demo', {
 uploadUrl: '/api/upload',
 multiple: true,
 concurrency: 3
 });
 document.getElementById('conc-select').addEventListener('change', function() {
 uploader.setOptions({ concurrency: parseInt(this.value, 10) });
 });
})();

How many files at once

concurrency defaults to 1 — strictly one file at a time. Raising it overlaps transfers, which finishes a batch of small files noticeably sooner because each one spends less time waiting for its turn.

More is not linearly better

Browsers cap simultaneous connections per host, so past that point extra uploads queue inside the browser rather than running. They also share the same upstream bandwidth: ten at once means ten slow ones instead of a few quick ones, and progress bars that all crawl together. Two to four is the range that usually helps. concurrency: 'auto' starts at two and adapts up to maxConcurrency (6 by default) based on how the transfers are actually going.