Autor Zpráva
kujeba
Profil
Dobrý den,
na webu pracuji s obrázky. Například provádím oříznutí obrázku, ale po provedení akce se mi obrázek stále ukazuje neoříznutý (neboť natáhnutý z cache), přitom na serveru již je aktuální oříznutá verze.
Jak zařídit, aby se obrázek nenačítal z vyrovnávací paměti?

Diky za rady.
kujeba
Profil
Tak reseni bylo sice tezko dohledatelne, ale nakonec az podezrele jednoduche.
Za volaný obrázek jsem přidal parametr, který se pokaždé mění:

$timestamp = time();
echo '<img src="obrazek.jpg?'.$timestamp.'" alt="" />';
Amunak
Profil
Já jen dodám, že se dá samozřejmě použít i JS, aby to bylo bez reloadu (používám to na znovunačtení obrázku s CAPTCHA), například takto:
        function new_captcha() {
            var img = document.getElementById('captchaimg');
            var rand = Math.floor(Math.random()*65535);
            img.src = 'index.php?action=captcha&img&'+rand;
        }


šance, že se střetnou dvě stejná čísla je při druhém načtení 1:65534, což považuji za dostatečné :)
PostCC
Profil
kujeba:
Pokud obrázek upravujete PHP scriptem, není třeba nijak měnit kódy HTML, do který se vkládá, stačí provést změnu ve výstupu scriptu, který obrázek generuje. Pomocí hlavičky:

Header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");


nastavíte platnost obsahu do minulosti a prohlížeč si tak při dalším přístupu vyžádá aktuální verzi obsahu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0