diff --git a/CImage.php b/CImage.php index e46d326..c16385a 100644 --- a/CImage.php +++ b/CImage.php @@ -63,6 +63,13 @@ class CImage + /** + * Add HTTP headers for outputing image. + */ + private $HTTPHeader = array(); + + + /** * Default background color, red, green, blue, alpha. * @@ -2422,11 +2429,28 @@ class CImage + /** + * Add HTTP header for putputting together with image. + * + * @param string $type the header type such as "Cache-Control" + * @param string $value the value to use + * + * @return void + */ + public function addHTTPHeader($type, $value) + { + $this->HTTPHeader[$type] = $value; + } + + + /** * Output image to browser using caching. * - * @param string $file to read and output, default is to use $this->cacheFileName - * @param string $format set to json to output file as json object with details + * @param string $file to read and output, default is to + * use $this->cacheFileName + * @param string $format set to json to output file as json + * object with details * * @return void */ @@ -2463,6 +2487,10 @@ class CImage header('Last-Modified: ' . $gmdate . " GMT"); } + foreach($this->HTTPHeader as $key => $val) { + header("$key: $val"); + } + if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { diff --git a/REVISION.md b/REVISION.md index 223f130..1b415f1 100644 --- a/REVISION.md +++ b/REVISION.md @@ -8,6 +8,7 @@ Revision history v0.7.6* (2015-10-20) ------------------------------------- +* One can now add a HTTP header for Cache-Control in the config file, #109. * Added hook in img,php before CImage is called, #123. * Added configuration for default jpeg quality and png compression in the config file, #107. * Strip comments and whitespace in imgs.php, #115. diff --git a/webroot/img.php b/webroot/img.php index 54ec21e..fe7199f 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -928,6 +928,18 @@ $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); +/** + * Get the cachepath from config. + */ +$cacheControl = getConfig('cache_control', null); + +if ($cacheControl) { + verbose("cacheControl = $cacheControl"); + $img->addHTTPHeader("Cache-Control", $cacheControl); +} + + + /** * Prepare a dummy image and use it as source image. */ diff --git a/webroot/img_config.php b/webroot/img_config.php index 09cb71e..e84db44 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -140,6 +140,16 @@ return array( + /** + * Add header for cache control when outputting images. + * + * Default value: + * cache_control: null, or set to string + */ + //'cache_control' => "max-age=86400", + + + /** * The name representing a dummy image which is automatically created * and stored at the defined path. The dummy image can then be used