Non memorizzare immagini nella cache con PHP

Finalmente abbiamo completato il nostro sistema di pubblicazione delle immagini in  basato su interfaccia web e sviluppato in PHP.

Ultimo problema da risolvere era la memorizzazione nella cache del browser delle immagini caricate, più esattamente capitava che quando si pubblicava una nuova immagine che doveva sostituire la precedente e che aveva lo stesso nome_file, veniva visualizzata non la nuova immagine ma quella che doveva essere sostituita, nel nostro caso all’interno dell’anteprima dei file uplodati.

Per risolvere questo spiacevole problema, che causava frustrazione negli utenti i quali pubblicavano correttamente un nuovo file ma continuavano a visualizzare il precedente in quanto il browser visualizzava lo stesso dalla propria cache. Per prima cosa ho cercato di risolvere il problema inserndo nell’header del file comandi PHP trovati in internet per evitare la memorizzazione della pagina in cache, ma la cosa non ha funzionato, probabilmente perchè evita la memorizzazione della pagina ma non delle immagini contenute.

Invece è stato sufficiente modificare il codice che visualizza le immagini aggiungendo un timestamp in PHP ossia siamo passati dal classico:

<img src=”nomefile.jpg?”>

a questo:

<img src=”nomefile.jpg?<?php time(); ?>”>

Così facendo il codice in PHP, o ASP, passa l’ora attuale dopo l’immagine e fa credere al browser di caricare ogni volta un’immagine differente.

 

Lascia un commento