Si usas move_uploaded_file() en lugar de copy() tendrás menos problemas de permisos al mover los archivos que por defecto PHP sube al directorio /tmp (o al que tenga configurado como upload_tmp_dir en su php.ini .. que se puede ver con phpinfo() también ..)
Y si se usan los arrays superglobales $_FILES (si usas PHP 4.1.0 en adelante .. ) mejor todavía.
Más info en:
http://www.php.net/manual/en/features.file-upload.php
Un saludo,