Works with any backend npm install Zero dependencies

Overview

A basic working uploader demonstrating the simplest MultipleUpload setup. Select files or drag and drop to upload.

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 class="mu-dropzone-text">Drag &amp; drop files here</div></div>
 <div class="mu-preview-area"></div>
 <div class="mu-progress" style="display:none">...</div>
 <div class="mu-queue"></div>
</div>
// Initialize MultipleUpload with minimal options
var uploader = new MultipleUpload(document.getElementById('myUploader'), {
 uploadUrl: '/api/upload'
});

What the component actually does

Selection, validation, transport, retry, progress and queue state — the parts of an upload that are the same in every application and tedious to rebuild. What it deliberately does not do is decide where files are stored or what happens to them afterwards; that stays your server's business.

Where to go next

The transport is a single strategy option, and the same UI and queue sit in front of all of them — a plain POST, chunked uploads, direct-to-S3, Azure, GCS, tus, or a server-side URL import. Start with a plain upload, and change the strategy when the file sizes or the storage make it necessary.