Works with any backend npm install Zero dependencies

Priority Queue

Prioritize file uploads by sorting tasks before uploading. Smaller files upload first in this example, but you can implement any priority logic in onSelect.

new MultipleUpload(document.getElementById('demo-priority'), {
 uploadUrl: '/api/upload',
 multiple: true,
 autoUpload: false,
 concurrency: 1,
 onSelect: function(files) {
 // Sort smallest files first (priority = smaller)
 var sorted = Array.from(files).sort(function(a, b) {
 return a.size - b.size;
 });
 var log = document.getElementById('priority-log');
 log.innerHTML = '<div>Upload order (smallest first):</div>';
 sorted.forEach(function(f, i) {
 log.innerHTML += '<div>' + (i + 1) + '. ' + f.name +
 ' (' + MultipleUpload.formatSize(f.size) + ')</div>';
 });
 return sorted;
 },
 onInit: function(uploader) {
 // Add upload button after selection
 var btn = document.createElement('button');
 btn.textContent = 'Upload (Priority Order)';
 btn.style.cssText = 'margin-top:12px; padding:8px 20px; background:#0891b2; color:#fff; border:none; border-radius:6px; cursor:pointer;';
 btn.addEventListener('click', function() { uploader.upload(); });
 uploader.container.appendChild(btn);
 }
});