Works with any backend npm install Zero dependencies
Custom Validation Function

Write a synchronous validation function that returns an error string or null.

(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,
        customValidation: function(file) {
            if (/\s/.test(file.name)) return 'File name must not contain spaces.';
            if (file.name.length > 50) return 'File name too long (max 50 chars).';
            if (/[^a-zA-Z0-9._-]/.test(file.name)) return 'Only alphanumeric, dot, dash, underscore allowed.';
            return null;
        },
        onValidationError: function(msg, name) { log((name||'file') + ': ' + msg); }
    });
})();