Works with any backend npm install Zero dependencies

SSE Chunk Progress

Server-sent events progress for chunked uploads. The server can push real-time processing status after chunks are received, providing feedback beyond just upload progress.

Waiting for upload...
new MultipleUpload(document.getElementById('demo-chunk-sse'), {
 uploadUrl: '/api/upload',
 multiple: true,
 chunked: true,
 chunkSize: 2 * 1024 * 1024,
 onTaskProgress: function(task) {
 var status = document.getElementById('sse-status');
 var chunkNum = Math.ceil((task.progress / 100) * Math.ceil(task.fileSize / (2 * 1024 * 1024)));
 var totalChunks = Math.ceil(task.fileSize / (2 * 1024 * 1024));
 status.textContent = 'Uploading chunk ' + chunkNum + ' of ' + totalChunks +
 ' (' + Math.round(task.progress) + '%)';
 },
 onTaskComplete: function(task) {
 document.getElementById('sse-status').textContent =
 'Server processing complete for ' + task.fileName;
 }
});

Server-pushed progress

Sometimes the interesting progress is on the server: assembling chunks, scanning, transcoding. Server-Sent Events let the server report that back over a long-lived connection, so the user sees what is happening after the upload finishes rather than a spinner.

It is your stream, not the component's

The component does not open the EventSource — nothing in the engine does. You establish the stream and update your own UI from it; the upload callbacks tell you when to start listening. That separation is deliberate: what the server does after receiving a file is application-specific in a way the component cannot guess.