Con:
copy()
www.php.net/copy()
Con esa función hasta podrías mover lo que subes por POST (vía $_FILES ) ... pero para el caso concreto de archivos que suben por HTTP ("upload") es recomendable usar move_upload_files() ..
El resto de movimientos de archivos puedes usar copy() .. y si se trata de "mover" .. a continuación puedes hacer: unlink() para borrar el archivo del directorio origen y así hacer el "mover" autentico.
Un saludo,