Works with any backend npm install Zero dependencies

Auto Upload

Files begin uploading immediately after selection when autoUpload: true is set. No separate upload button needed.

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-progress" style="display:none">...</div>
 <div class="mu-queue"></div>
</div>
var uploader = new MultipleUpload(document.getElementById('myUploader'), {
 uploadUrl: '/api/upload',
 autoUpload: true // Start uploading immediately on file select
});

Starting on selection

autoUpload defaults to true: files begin transferring as soon as they are picked, with no button to press. For a single small attachment that is the right default — the extra click adds nothing.

Where it stops being right

Large files, metered connections, or a queue the user is still assembling. Uploading immediately means a file removed a moment later was already sent, and a mistake costs the whole transfer rather than nothing. Set it false and the queue waits for upload().