Yo suelo usar algo como esto:
Código PHP:
if (is_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'])) {
$imagen=rand(0,1000);
$imagen.=$HTTP_POST_FILES['imagen']['name'];
$imagen=delBlancos($imagen);
copy($HTTP_POST_FILES['imagen']['tmp_name'], "ruta/en/servidor/$imagen");
}
Lo que hago es llenar una vble. $imagen con un numero aleatorio entre 0 y 1000 luego le añado el nombre de la imagen que se quiere subir y antes de copiarlo al servidor le quito lo espacios en blanco (si quieres te paso tambien esa funcion).