con htaccess puoi prevenire il download diretto (Cerca "htaccess preventing direct download")

Poi puoi inviare file con header() dalle pagine del sito.

Eventualmente non dovrebbero esserci problemi a immagazzinare i file in una cartella che non è nella cartella pubblica del dominio.