Async Validation (Promise)
Return a Promise from customValidation for server-side or async checks.
(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) {
log('Checking ' + file.name + '...');
return new Promise(function(resolve) {
setTimeout(function() {
if (file.size > 10 * 1024 * 1024) {
resolve('File exceeds 10 MB policy limit.');
} else {
log(file.name + ' passed async check');
resolve(null);
}
}, 500);
});
},
onValidationError: function(msg, name) { log((name||'file') + ': ' + msg); }
});
})();