As some of you may know I run a small picture hosting site. A user emailed me the other day to say that Internet Explorer was only allowing her to download images at BMP images, despite the image being a JPG or a GIF. Turns out this is a known issue. I figured that had to be a way to turn off caching via the HTTP headers and I think I have a solution. If you’re sending dynamic files via PHP give these headers a try.
<?php // Your file's extension $ext = 'jpg'; // Your file's name $name = 'goofypicture.jpg'; // Your file's location $src = '/path/to/'.$name; header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Type: image/".$ext); header('Content-Disposition: inline; filename="'.$name.'"'); header("Content-Length: ".filesize($src)); ?>
Thanks for the “Expires” clue. Very important for my latest XMLHttpRequest project.