Works with any backend npm install Zero dependencies

Multiple Files

Upload multiple files at once by setting multiple: true. Users can select several files from the file dialog.

Drag & drop files here
<div id="myUploader" class="mu-uploader">
 <button type="button" class="mu-select-btn">Select Files</button>
 <input type="file" class="mu-file-input" multiple style="display:none" />
 <div class="mu-dropzone">...</div>
 <div class="mu-queue"></div>
</div>
var uploader = new MultipleUpload(document.getElementById('myUploader'), {
 uploadUrl: '/api/upload',
 multiple: true // Allow multiple file selection
});

Asking for more than one

multiple defaults to false, so this is a deliberate setting rather than the default behaviour. With it on, the picker allows a multi-selection and the queue accumulates rather than replacing.

What changes once there are several

Everything that was trivially obvious with one file needs thought: which uploads first (concurrency), whether a cap is needed (maxFiles), and what the user sees when one of ten fails. The last is the one most often skipped, and it is the one that turns a recoverable problem into a silent loss.