Código PHP:
function displayGraphicFile ($graphicFileName,$fileType) {
$fileModTime = filemtime($graphicFileName);
$headers = getRequestHeaders();
if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == $fileModTime)) {
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $fileModTime).' GMT', true, 304);
} else {
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $fileModTime).' GMT', true, 200);
header('Content-type: '.$fileType);
header('Content-transfer-encoding: binary');
readfile($graphicFileName);
}
}
function getRequestHeaders() {
if (function_exists("apache_request_headers")) {
if($headers = apache_request_headers()) {
return $headers;
}
}
$headers = array();
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$headers['If-Modified-Since'] = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
}
return $headers;
}
Ahora, cuando lo he integrado en el código de mi red, por alguna extraña razón no funciona. La imagen siempre carga correctamente, pero desde el servidor en vez de desde la caché.
¿Alguien podría echarme una mano? Me haría un gran favor, llevo bastante tiempo comiéndome la cabeza con esto y no encuentro el problema. Gracias