Можно сделать так:
Делаем новый обработчик пути в системе, например /file/private. Далее все запросы к картинкам делаем через него в формате /file/private/path/inside/your/private/directory/picture.jpg. Обработчик пути должен выдать картинку исходя из параметров переданных скрипту.
Работать будет только с включенным mod_rewrite.
Для браузера путь картинки будет обычным, соответственно при сохранении будет показано имя файла.
Идея нагло подсмотрена в Drupal (обработка приватных файлов).
Последний метод у меня как раз используется в системе, где все файлы приватные. Доступ к директории закрыт в .htaccess. Файлы отдаются PHP скриптом, который делает все проверки (в реальности у меня Drupal).
Когда есть IF-MODIFIED-SINCE, тогда присылается только разница (2 новых друга из примера).
Когда нужен полный список просто не отправляем заголовок IF-MODIFIED-SINCE (что в принципе тоже самое, что послать 0). АРІ должен вернуть полный набор.
Делаем новый обработчик пути в системе, например
/file/private
. Далее все запросы к картинкам делаем через него в формате/file/private/path/inside/your/private/directory/picture.jpg
. Обработчик пути должен выдать картинку исходя из параметров переданных скрипту.Работать будет только с включенным
mod_rewrite
.Для браузера путь картинки будет обычным, соответственно при сохранении будет показано имя файла.
Идея нагло подсмотрена в Drupal (обработка приватных файлов).
.htaccess
. Файлы отдаются PHP скриптом, который делает все проверки (в реальности у меня Drupal).Оно не должно совпадать с именем на сервере. Пользователю браузер должен показать именно
FAKE_NAME.TXT
IF-MODIFIED-SINCE
, тогда присылается только разница (2 новых друга из примера).Когда нужен полный список просто не отправляем заголовок
IF-MODIFIED-SINCE
(что в принципе тоже самое, что послать 0). АРІ должен вернуть полный набор.