Works with any backend npm install Zero dependencies
Sortable Queue

Sort tasks by priority, size, or name. Use sortTasks() for custom ordering.

(function() {
    var uploader = new MultipleUpload('#demo', {
        uploadUrl: '/api/upload',
        multiple: true,
        autoUpload: false,
        sortable: true
    });
    document.getElementById('sort-select').addEventListener('change', function() {
        var v = this.value;
        if (!v) return;
        uploader.setOptions({ sortBy: v });
        uploader.sortTasks(function(a, b) {
            if (v === 'size') return a.fileSize - b.fileSize;
            if (v === 'name') return a.fileName.localeCompare(b.fileName);
            return b.priority - a.priority;
        });
    });
})();