cambiar el nombre del archivo mientras se carga

Tengo un problema aquí estoy tratando de subir un archivo

La primera vez que mueve el nombre de archivo de temp en su directorio respectivo,

pero nuevamente trato de cargar el archivo aa diferente con el mismo nombre que debería cambiar el nombre del archivo cargado por primera vez

con date_somefilename.csv y dar el nombre del archivo a su estado original

por ejemplo, un archivo test.csv, lo estoy cargando por primera vez, se cargará en el directorio correspondiente como

test.csv, cuando subo un archivo csv diferente con el mismo nombre test.csv

Necesito conseguir el

test.csv (último archivo subido)

06222012130209_test.csv (archivo cargado por primera vez)

El codigo esta abajo

$place_file = "$path/$upload_to/$file_name";     



if (!file_exists('uploads/'.$upload_to.'/'.$file_name)) 
 {

move_uploaded_file($tmp, $place_file);  


}else{

 move_uploaded_file($tmp, $place_file); 
 $arr1 = explode('.csv',$file_name);
  $todays_date =  date("mdYHis");
   $new_filename = $todays_date.'_'.$arr1[0].'.csv';
  echo  $str_cmd = "mv " . 'uploads/'.$upload_to.'/'.$file_name . " uploads/$upload_to/$new_filename";
   system($str_cmd, $retval); 
} 

Respuestas a la pregunta(5)

Su respuesta a la pregunta