Hace un tiempo me encontré en la situación de enviar al browser archivos que tenía almacenados sin que el usuario pudiera ver la carpeta (o ruta) en que se encontraban almacenados.
Aunque esta práctica es bastante habitual, me encontré con la dificultad de que los nombres de los archivo podían contener caracteres “extraños”, como son los tildes, ñ, espacios y otros caracteres similares.