I'm writing a php script to c开发者_运维技巧rop 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
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")); ?> '>
If you're sure your HTML is pointing at the right file; Ctrl+F5?
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.
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.
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
精彩评论