Mejor usa la función:
move_uploaded_file() en lugar de copy() .. asì no tendràs problemas con configuraciones de PHP tipo "safe_mode". Esa funciòn es la única que tiene permiso para "mover" el archivo que subiò por HTTP vía PHP desde el directorio temporal donde PHP lo deja a su destino definitivo (algún directorio de tu sitio).
Más info:
http://www.php.net/manual/en/features.file-upload.php
Un saludo,