Reputation: 7539
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
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
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
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
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