Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Caching generated images with PHP

Tags:

php

caching

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.

like image 500
lafoaug Avatar asked Jun 25 '26 16:06

lafoaug


1 Answers

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' )

like image 181
redben Avatar answered Jun 27 '26 04:06

redben