Codice PHP:
function rename_existing_file($filename, $dir)
{
$parts = explode('.', $filename);
$newname = $parts[0].'-.'.$parts[1];
if( file_exists($dir.$newname))
{
return rename_existing_file($newname, $dir);
}
else
{
return $newname;
}
}
Ovviamente dovete controllare prima che $_FILES['upload']['name'] esista nella directory di destinazione. Io aggiungo - come token di differenziazione, ma basta sostituire nella funzione il token che preferite (anche un valore progressivo).

EDIT: per ora questa funzione non prevede il caso in cui il file abbia dei punti (.) nel nome...ma è facilmente risolvibile.