Ahora empezamos con el código php verificando que la variable submit se encuentre en el arreglo de $_POST. Esto es debido a que el resultado y el formulario se encuentran en la misma página.

Si el número es mayor a 0, hubo un problema y hay que abortar.
Si queremos restringir la carga sólo a imágenes podemos verificar si el archivo es una imagen.

También podemos restringir la extensión del archivo, para evitar que el usuario suba un archivo que no debe.

También podemos especificar el tamaño máximo de bytes que puede tener un archivo

Ahora ya podríamos guardar el archivo. Pero como varios usuarios subiran archivos, tenemos que evitar que haya conflicto de nombre, es por eso que necesitamos guardarlo con un nombre único. Utilizamos la función move_uploaded_file() para guardar en una carpeta del servidor el archivo que se subió.

Código completo