Переместите свои загрузки за пределы своего рута, как в / data / uploads. В этом случае вам нужно поместить это в ваш файл ProjectConfiguration:
sfConfig::set('sf_upload_dir' => sfConfig::get("sf_data_dir") . DIRECTORY_SEPARATOR . 'uploads');
При условии, что вы всегда использовали sf_upload_dir для указания папки загрузки, все ваши файлы будут сохранены там.
Второй части решения требуется новое действие, которое получает имя файла, проверяет, есть ли у пользователя доступ к нему, и возвращает:
- либо ошибка 403
- или содержимое файла через
readfile()
после установки правильных заголовков Content-Type и Content-Lenght.