Non mi pare di vedere errori...

In ogni caso al posto di "copy" potresti usare move_uploaded_file().

In ogni caso non capisco perchè ti sei complicato cosi la vita per fare l'upload di un file :master: