G Статьи

Отмена кэширования загруженного поверх старого изображения (фотографии)

© 2007-01-08, Guzei.com, Игорь Гузей

Это не точная и окончательная инструкция к действию использующая правильные термины и оптимальные варианты. Это скорее лог текущей проблемы.

Проблема

Сделал анкету, где можно загружать фотографию. Загрузил, посмотрел, захотел загрузить другую. Загрузил, но вижу предыдущую.

Решение

Добавляем случайный параметр к имени фотогрфии и гарантированно видим только что загруженную.

 echo '<img src="img.jpg?d='.time().'">';

Тернии

После загрузки новой фотографии поверх старой не помогает ничего. Ни обновление страницы, ни постановка тэгов ответственных за кэш, ни прописывание php-заголовков типа:

 header("Cache-Control: no-cache, must-revalidate");
 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

которые рекомендованы в PHP-документации.
При обновлении страницы через несколько минут новая фотография появляется сама собой, но сразу же после загрузки увидеть то, что загрузилось получилось только способом указанным в решении.