Lee este mensaje .. trata los mismos problemas que estás teniendo (por mál uso de la función en concreto ..)
http://www.forosdelweb.com/showthrea...hreadid=195196
Te hago un breve resumen:
* PHP cuando sube los archivos por HTTP .. los deja en un directorio temporal. Ahí tienen un nombre y ese es el que "copias" .. Su nombre está en $_FILES['nombre_archivo']['tmp_name'].
* PHP no asume en sus funciones (copy() .. etc) el nombre del archivo en destino .. así que si requieres un nombre puedes usar el que tenía que lo tienes en: $_FILES['nombre_archivo']['name']
* En rutas de servidores .. incicar un $dir="\" .. asumes que es el raiz del servidor -entero-: Debes usar rutas absolutas completas a ser posible o "./" (donde estas ..) Pero como creas por ahí un subdirectorio .. si quieres hacerlo así tendrías que meterte en dicho directorio con: chdir() .. pero lo ideal es que tomes la ruta completa absoulta (la puedes obtener con $_SERVER['DOCUMENT_ROOT']) y de ahí componer tu ruta absoluta de tu servidor.
* Por seguridad y compatibilidad entre configuraciones de PHP .. usa move_uploaded_file() en lugar de copy().
Igualmente lee el mensaje y toma nota de los links del manual oficial de PHP sobre "Upload" .
Un saludo,
PD: .. donde leistes como usar el tema de "Upload" de archivos? (te lo comento por qué son várias las personas que llegan con los mismos problemas ... tal vez sea algún tutorial por ahí mal hecho, en tal caso habría que llamar la atención al autor si corresponde).