Prima di tutto alcune annotazioni:
da
if(empty($errors)==true){
if(file_exists("$directory/".$fileName)== true){
puoi rimuovere ==true è sottointeso.
mentre
if(is_dir($directory)==false){
if(is_dir("$directory/".$fileName)==false){
puoi scriverli
if( ! is_dir($directory) ){
if( ! is_dir("$directory/".$fileName) ){
Non che come fai tu sia sbagliato, ma così il codice diventa un po' più pulito.
Veniamo al tuo problema:
tu prima fai l'upload e sposti il file nella cartella con move_uploaded_file() e solo dopo controlli se c'è (con file_exists() ), ovvio che c'è, ce l'hai appena messo, infine lo rinomini.
Il risulato è che prima sovrascrivi il vecchio file e poi cambi il nome, ti ritrovi solo col nuovo file col nome cambiato.
Devi fare il contrario, prima controllare se nella cartella c'è un file con quel nome, e poi copiarci quello che stai caricando modificandone il nome se necessario.
Altra cosa:
con
$fileName.time()
quello che fai è appendere un timestamp dopo l'estensione del file!
dovresti fare
time().$filename;