Я не знаю проблем с тем, чтобы оставить имя файла в покое, если файл сохранен за пределами области, доступной через Интернет, и передан клиенту с помощью сценария.
Метод, который я использую (в KFM и в моей CMS), заключается в использовании mod_rewrite для перенаправления вызовов в скрипт, который будет извлекать файл для вас.
Например, если у вас есть URL /f/file.jpg, но файл на самом деле находится в ../files/file.jpg, то вы используете mod_rewrite, чтобы «перехватить» запрос и перенаправить его в скрипт , Например:
RewriteRule ^f/(.*)$ /get-file.php?filename=$1 [L]
затем напишите get-file.php, используя что-то вроде readfile (), чтобы пропустить файл через