Prueba con este... A mi me funciona muy bien
Código PHP:
<?
if ($Guardar){
$Ruta = "";
// SI HEMOS ENVIADO UNA IMAGEN LA GUARDAMOS
if(is_uploaded_file($_FILES['Imagen']['tmp_name'])){
// OBTENEMOS EL NOMBRE DEL ARCHIVO
$Nombre=$_FILES['Imagen']['name'];
// LE QUITAMOS CARACTERES ESPECIALES AL NOMBRE Y SUSTITUIMOS CON _
$Nombre=preg_replace("/[\s!\"á#$\%&\/\|\\\*\+]/", "_", $Nombre);
// SI EL ARCHIVO YA EXISTE LE PONEMOS UN NUMERO AL FINAL PA QUE SE DIFERENCIEN
while(file_exists("$Ruta$Nombre")){
$Nombre=substr($Nombre, 0, strrpos($Nombre, '.')>0?strrpos($Nombre, '.'):strlen($Nombre)).".1".strrchr($Nombre, '.');
}
// MOVEMOS EL ARCHIVO AL DIRECTORIO
copy ("$Imagen", "$Ruta$Nombre") or die ("no se pudo subir el archivo");
}
}
?>
<form method="post" action="" enctype="multipart/form-data">
<input name="Imagen" type="file" class="Input" size="10" >
<input name="Guardar" type="submit" value="Guardar">
</form>