Menos mal que encotraste tu error, esto suele pasar muy a menudo cuando no haces tu codigo y solo lo copias de otro lado, pero viendo tu codigo aun le falta una pulidita, en vez de usar fopen para escribir la imagen, deberias usar una funcion mas especifica para eso llamada "move_uploaded_file"
Saludos