Para no sobreescribir puedes usar la siguiente funcion:
Código PHP:
function no_sobreescribir($nom_imagen, $carpeta) {
$separador = "_";
$sin_separador = ereg_replace($separador, "_", $nom_imagen);
if ( !file_exists($carpeta.$sin_separador) ) {
$nombre_correcto = $sin_separador;
}
else {
$nombre_temp = $sin_separador;
$nombre_sep = $separador.$nombre_temp;
$i = 0;
while ( file_exists($carpeta.$nombre_temp) ) {
$nombre_temp = $i.$nombre_sep;
$i++;
}
$nombre_correcto = $nombre_temp;
}
return $nombre_correcto;
}
$nombreimg=$HTTP_POST_FILES['userfile']['name'];
$carpeta=$_POST['carpeta'];
//modifica $carpeta a tus necesidades
$finalimg=no_sobreescribir($nombreimg,$carpeta);
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$finalimg);