Pueden ser por muchas cosas, no se, pero creo que en este if:
Código PHP:
if (is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']>1000
estas diciendo que el tamaño ha de ser mayor de 1000, la imagen no será de un tamaño menor??,
si lo que quieres es poner un maximo de bytes creo que deberia ser la comparacion alreves,
Código PHP:
if (is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']<1000