In JavaScript i file associati ad un campo di input appartengono ad un tipo di dati specifico.
Per verificare se l'utente ha scelto dei file, la seguente verifica fallirà:
if(Array.isArray(input.files) && input.files.length > 0) {
    // Otterremo sempre false
}
files non è un array, ma una FileList, quindi la prima verifica non avrà
mai successo. Dobbiamo invece scrivere:
if(input.files && input.files.length > 0) {
    // Otterremo true o false
}
Una FileList ha una proprietà length, quindi anche la seconda verifica sarà attendibile.