public function action_sendfile() { $file = $this->request->param('file'); $format = $this->request->param('format'); $file = preg_replace('/\\-[0-9a-f]{1,32}$/', '', $file); $file_name = Assets::get_file($file, $format); if ($file_name && is_file($file_name)) { $this->response->send_file($file_name, NULL, ['inline' => true]); } else { throw new HTTP_Exception_404(); } }
public static function video_tag($source, array $attributes = NULL) { if (strpos('//', $source) === FALSE && isset($source[0]) && $source[0] !== '/') { $version = ''; $format = 'mp4'; if (preg_match('#^(?<source>.+)\\.(?<format>\\w+)$#', $source, $matches)) { $source = $matches['source']; $format = $matches['format']; } if (Kohana::$config->load('assets.versionizable') === TRUE) { $file_name = Assets::get_file($source, $format); if ($file_name && is_file($file_name)) { $version = '-' . hash_hmac_file('md5', $file_name, Kohana::$config->load('assets.versionizable.hmac_password')); } } $source = '/assets/' . $source . $version . '.' . $format; $mime = File::mime_by_ext($format); } else { $mime = File::mime($source); } return '<video' . HTML::attributes($attributes) . '><source src="' . $source . '" type="' . $mime . '" /><a href="' . $source . '">' . $source . '</a></video>'; }