Haber si te sirve esto que use:
Código PHP:
$max=1000001; //(1Mb) Tamaño maximo del archivo a subir
$nuevodirectorio="direccion_carpeta";
dir ($nuevodirectorio);
$uploaddir = "$nuevodirectorio/";
//A continuación tratamos el archivo de imagen, aplicando unas funciones en particular como medida de seguridad.
$filesize = $_FILES['upfile']['size'];
$filename = trim($_FILES['upfile']['name']); //(trim elimina los posibles espacios al final y al principio del nombre del archivo)
$filename = substr($filename, -20);// (con substr le decimos que coja solamente los últimos 20 caracteres por si el nombre fuera muy largo)
$filename = ereg_replace(" ", "", $filename); //(con esta función eliminamos posibles espacios entre los caracteres del nombre)
//Ahora creamos las condiciones que debe cumplir el archivo antes de ser almacenado en el servidor. Restringimos a .jpg ó .gif o .png
//(tanto en mayusculas como en minúsculas) y finalmente cambiamos el archivo de la carpeta temporal a la final elegida.
if($filesize < $max)
{
if($filesize > 0)
{
if((ereg(".jpg", $filename)) || (ereg(".gif", $filename)) || (ereg(".png", $filename)) || (ereg(".JPG", $filename))|| (ereg(".GIF", $filename)) || (ereg(".PNG", $filename)))
{
$uploadfile = $uploaddir . $filename;
if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile) )
{
$origen="direccion_carpeta".$filename;
$destino="carpeta_copia".$filename;
copy($origen,$destino);
}
else
{
//print("mensaje");
}
}
else
{
//print("Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.");
}
}
}
Puedes modificarlo a gusto si lo necesitas....no tuve tiempo de mejorarlo asi que te lo paso como me funcionaba.