Cita: Se puede mejorar un poco para que quede mas práctico. Le veo fallas pero puede servirte de base.
Cita: Ese script usa la función copy() para copiar el archivo a su lugar definitivo.
Por seguridad es conveniente usar la funcion move_uploaded_file() que está especificamente diseñada para mover archivos subidos por un formulario. Hace una comprobación de que el archivo fue subido por el método POST.

Precisamente ese era el error que yo comentaba que le veia. Tambien debes verificar que el type del archivo sea una imagen usando la propiedad type de la matriz o si no te pueden meter un golazo.