Non ho analizzato bene il tuo codice comunque occhio perchè file_exists restituisce true non solo se il path assegnato è un file valido ma pure se è solo una directory valida.

"Restituisce TRUE se il file o la directory specificata da filename esiste; FALSE altrimenti."

http://it2.php.net/file_exists

Prova con is_file()

http://it2.php.net/manual/it/function.is-file.php