When are the validators called: before or after a file gets uploaded?

Not all file information becomes available immediately, i.e If you want to check dimensions, wait until originalImageInfo becomes something other than null. You can find some examples here

Here is an excerpt from the docs:

Validators are called as soon as new information about file becomes available. All fields unknown at the calling time are null. This means one validator can be called more then once for one file and should test if the validated field is not null.