beh e' una soluzione che semplicemente maschera i nomi delle dir.
Il fatto e' che una volta che scarichi il file il path e/o il nomefile lo vedi per cui alla fine e' sempre raggiungibile.

Il mio dubbio erarealtivo al fatto di proteggere la cartella dei file uploadati indipendentemente dal nomefile/cartella.

A sto punto non sarebbe meglio caricare il file codificato in base64 direttamente in un tabella mysql?

tipo

tabella files

id
filename <= $filename
uploaddate <= NOW()
f_content <== base64_encode( file_get_contents($file) )

Cosi' i file stanno sul db e non piu' in cartelle che per quanto puoi mascherare cmq sono ad accesso pubblico?
O senno htaccess e htpassword possono risolvere il problema?