Works with any backend npm install Zero dependencies
Error Handling Callbacks

Handle validation errors, upload errors, and task errors separately.

(function() {
    var logEl = document.getElementById('log');
    function log(m) { var d = document.createElement('div'); d.className='pkg-log-entry'; d.textContent=m; logEl.appendChild(d); logEl.scrollTop=logEl.scrollHeight; }
    new MultipleUpload('#demo', {
        uploadUrl: '/api/upload',
        multiple: true,
        maxFileSize: '1MB',
        allowedExtensions: '.jpg,.png,.pdf',
        onValidationError: function(msg, name) { log('[validation] ' + (name||'') + ': ' + msg); },
        onTaskError: function(task, err) { log('[taskError] ' + task.fileName + ': ' + err); },
        onError: function(msg, name) { log('[error] ' + (name||'general') + ': ' + msg); }
    });
})();