Prova a vedere il contenuto della variabile

$_FILES['foto']['error']

e confrontalo con quanto indicato nel manuale per cercare di capire cosa succede.