yo lo haría así:
Código PHP:
<?php
$i = 1;
# con este while busco el mayor número que existe ya como nombre.
while (file_exists("/ruta/a/la/carpeta/$i.mp3")) {
$i++;
}
# ahora tengo en $i un número que no existe en la carpeta.
$nombre_archivo = "$i.mp3";
?>
y ya con esto subes el archivo usando $nombre_archivo como nombre.
De todas formas, es quizás más sencillo comprobar si el archivo existe, y modificar el nombre en vez de cambiar el nombre siempre.
aquí mando una función para hacer esto, cualquier error me avisan, por favor.
Código PHP:
<?php
function no_sobreescribe($nombre_archivo, $carpeta) {
$separador = "___";
# tengo que reemplazar en el nombre original cualquier ocurrencia de "___"
$sin_separador = ereg_replace($separador, "_", $nombre_archivo);
# si el archivo no existe en la carpeta destino, no hago nada.
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;
}
?>
Saludos.