sai che al posto di filesize($_FILES['userfile']['tmp_name']) puoi usare $_FILES['userfile']['size'] > 0 ed $_FILES['userfile']['error'] != 0(NO error) e 4(Nessun file caricato, quando lasci il campo vuoto)
sai che al posto di filesize($_FILES['userfile']['tmp_name']) puoi usare $_FILES['userfile']['size'] > 0 ed $_FILES['userfile']['error'] != 0(NO error) e 4(Nessun file caricato, quando lasci il campo vuoto)