Works with any backend npm install Zero dependencies

Single File Upload

Restrict the uploader to accept only one file at a time by setting multiple: false.

Drag & drop a file here
<div id="myUploader" class="mu-uploader">
 <button type="button" class="mu-select-btn">Select File</button>
 <input type="file" class="mu-file-input" style="display:none" />
 <div class="mu-dropzone"><div class="mu-dropzone-text">Drag &amp; drop a file here</div></div>
 <div class="mu-preview-area"></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',
 multiple: false // Only one file at a time
});

The simplest possible case

One file, one request, no chunking. This is what the component does with almost no configuration, and for a form attachment under a few megabytes it is the right answer — chunking adds server-side work that buys nothing at that size.

When to move off it

Two signals: files large enough that a dropped connection means starting over, or a body-size limit somewhere between the browser and your handler that you cannot raise. Both point at chunked: true, and neither is worth pre-empting before it happens.