This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
szurubooru/src/Views/layout-file.phtml
2014-05-03 22:14:00 +02:00

38 lines
1.2 KiB
PHTML

<?php
$lastModified = $this->context->transport->lastModified;
$eTag = $this->context->transport->fileHash;
$ttl = $this->context->transport->cacheDaysToLive * 24 * 3600;
$ifModifiedSince = isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])
? $_SERVER['HTTP_IF_MODIFIED_SINCE']
: false;
$eTagHeader = isset($_SERVER['HTTP_IF_NONE_MATCH'])
? trim(trim($_SERVER['HTTP_IF_NONE_MATCH']), '"')
: false;
\Chibi\Util\Headers::set('ETag', '"' . $eTag . '"');
\Chibi\Util\Headers::set('Last-Modified', gmdate('D, d M Y H:i:s \G\M\T', $lastModified));
\Chibi\Util\Headers::set('Pragma', 'public');
\Chibi\Util\Headers::set('Cache-Control', 'public, max-age=' . $ttl);
\Chibi\Util\Headers::set('Expires', gmdate('D, d M Y H:i:s \G\M\T', time() + $ttl));
if (isset($this->context->transport->customFileName))
{
\Chibi\Util\Headers::set(
'Content-Disposition',
'inline; filename="' . $this->context->transport->customFileName . '"');
}
\Chibi\Util\Headers::set(
'Content-Type',
$this->context->transport->mimeType);
if (strtotime($ifModifiedSince) == $lastModified or $eTagHeader == $eTag)
{
\Chibi\Util\Headers::setCode('304');
exit;
}
echo $this->context->transport->fileContent;
flush();