Works with any backend npm install Zero dependencies

Chunk Visualization

A visual grid showing each chunk status. Chunks change color as they progress: gray (pending), cyan (uploading), green (complete), red (failed).

var chunkSize = 1 * 1024 * 1024; // 1 MB
var grid = document.getElementById('chunk-grid');
var cells = [];

new MultipleUpload(document.getElementById('demo-chunk-viz'), {
 uploadUrl: '/api/upload',
 chunked: true,
 chunkSize: chunkSize,
 onTaskStart: function(task) {
 var totalChunks = Math.ceil(task.fileSize / chunkSize);
 grid.innerHTML = '';
 cells = [];
 for (var i = 0; i < totalChunks; i++) {
 var cell = document.createElement('div');
 cell.className = 'chunk-cell';
 cell.textContent = i + 1;
 grid.appendChild(cell);
 cells.push(cell);
 }
 },
 onTaskProgress: function(task) {
 var uploaded = Math.floor((task.progress / 100) * cells.length);
 cells.forEach(function(c, i) {
 if (i < uploaded) c.className = 'chunk-cell done';
 else if (i === uploaded) c.className = 'chunk-cell uploading';
 else c.className = 'chunk-cell';
 });
 },
 onTaskComplete: function() {
 cells.forEach(function(c) { c.className = 'chunk-cell done'; });
 }
});