public function sendMedia($sourceCacheFilename, $headerCacheFilename, $save = false) { if ($this->asImage) { $src = $this->getImageSource(); } else { $src = rex_file::get($this->getMediapath()); } $this->setHeader('Content-Length', rex_string::size($src)); $header = $this->getHeader(); if (!array_key_exists('Content-Type', $header)) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $content_type = finfo_file($finfo, $this->getMediapath()); if ($content_type != '') { $this->setHeader('Content-Type', $content_type); } } if (!array_key_exists('Content-Disposition', $header)) { $this->setHeader('Content-Disposition', 'inline; filename="' . $this->getMediaFilename() . '";'); } if (!array_key_exists('Last-Modified', $header)) { $this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s T')); } rex_response::cleanOutputBuffers(); foreach ($this->header as $t => $c) { header($t . ': ' . $c); } echo $src; if ($save) { rex_file::putCache($headerCacheFilename, $this->header); rex_file::put($sourceCacheFilename, $src); } }
public function sendMedia() { $headerCacheFilename = $this->getHeaderCacheFilename(); $CacheFilename = $this->getCacheFilename(); rex_response::cleanOutputBuffers(); if ($this->isCached()) { $header = rex_file::getCache($headerCacheFilename); if (isset($header['Last-Modified'])) { rex_response::sendLastModified(strtotime($header['Last-Modified'])); unset($header['Last-Modified']); } foreach ($header as $t => $c) { header($t . ': ' . $c); } readfile($CacheFilename); } else { $this->media->sendMedia($CacheFilename, $headerCacheFilename, $this->use_cache); } exit; }