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);
}
});