tags:

views:

39

answers:

1

I am trying to cache images which have been generated. You create a image by accessing the file by resize.php?width=x&height=y. If the image of that width and height does not exist I use imagemagick to create it. However if it does exist it is served to the visitor.

The !file_exists($name) check works fine so processing is not done when its not needed. However the images still take a while to load.

Is my approach of readfile incorrect or have I set headers incorrectly?

if (!file_exists($name)) {
 //image processing here
}
header("Content-Type: image/png");
header("Expires: Sat, 25 Jul 2020 10:00:00 GMT");
readfile($name);

Thanks.

+4  A: 

If i had to do this, i'd proccess the image if it does not exist save it in some web accessible folder. If the file exists just redirect to it header( 'Location: http://www.yoursite.com/path/to/existing/file.png' )

redben
Ah ha, duh! Thanks for the help! I know php scripts are automatically not cached so readfile was just reading the image every time.
lafoaug