$files[] = ...
non
$files = ...
altrimenti $files non lo usi come array, ma sovrascrivi ogni volta il suo valore all'interno del ciclo while e alla fine ci rimane dentro solo il contenuto dell'ultima iterazione.