Works with any backend npm install Zero dependencies

Data Table

Uploaded files are displayed in a data table after completion, with sortable columns and file details.

Drag & drop files here
var uploader = new MultipleUpload(el, {
 uploadUrl: '/api/upload',
 onTaskComplete: function(task) {
 addToDataTable({
 name: task.name,
 type: task.file.type,
 size: task.file.size,
 uploadedAt: new Date().toLocaleString()
 });
 }
});

The queue as rows in your own table

The callbacks give you the events — a file added, progress, completion, failure — and you render them however the surrounding page already renders data. For an admin screen that is usually a table, so that uploads sort, filter and align with everything else on the page.

What a table has to keep

Whatever you build still needs to show failures, offer a retry, and explain a rejection. Those are the parts of the built-in queue that are easy to leave out and expensive to omit: a row that simply stops at 40% with no explanation is worse than no progress display at all.