patrick
patrick

Reputation: 7539

image changed but appears the same in browser

I'm writing a php script to crop an image. The script overwrites the 'old' image with the 'new' one, but when I reload the page (which is supposed to pickup the new image) I still see the old one.

If i check my hard disk (i'm working on local machine) i can see that the image HAS changed, but the HTML doesn't pick it up. Maybe it's a caching problem? How can I solve it?

thanks, Patrick

Upvotes: 2

Views: 233

Answers (5)

Steve
Steve

Reputation: 5853

If you're sure your HTML is pointing at the right file; Ctrl+F5?

Upvotes: 2

user206268
user206268

Reputation: 908

Try to add a timestamp to the URL. This prevents most browsers from caching the images. Example: http://localhost/test.jpg?1257783872

Edit: Oh, Ryan has already given a similar answer. Sorry.

Upvotes: 1

Ryan Michela
Ryan Michela

Reputation: 8374

A common technique for ensuring images are never cached is to add the current time in miliseconds to the end of the image's url as a parameter. Your web server will ignore the parameter and serve the same image every time, but your browser (and any intermediate cache) will register a cache miss because the url for the image is different.

<a href='/images/someimage.png?d= <?php echo(date("U")); ?> '>

Upvotes: 5

Palantir
Palantir

Reputation: 24182

Are you sending the proper headers to prevent the browser from caching the image?

E.g.: http://www.badpenguin.org/php-howto-control-page-caching

Upvotes: 0

user50049
user50049

Reputation:

It could be that your ISP is using a caching proxy. Check the URL with BrowserShots to see if this is indeed the case. My back-up DSL is from a provider that does this to save bandwidth, its highly annoying. They also ignore every header telling them NOT to do it.

Upvotes: 0

Related Questions