Quando fai l'upload di un file hai bisogno di $_FILES['upload']['tmp_name'] e $_FILES['upload']['name'] che rappresentano rispettivamente il file VERO E PROPRIO da mettere sul server e il NOME DEL FILE da mettere sul server; ora, di default, in $_FILES['upload']['name'] hai il nome del file che carichi dalla finestra di dialogo; riassegnando un valore a $_FILES['upload']['name'] ti ritrovi sul server il file da te selezionato rinominato col valore appena assegnato...spero di essere stato chiaro, cmq è più facile e farsi che a dirsi