X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fgetfile.php;h=f0c98f74167702ef6bcdc4daeffb2f5e1d67f055;hb=418b3c3c53194040022c4b56bd0c0b04fd6fd4d7;hp=ad411225030c6c5155cb1945c5ac21cc90787f1d;hpb=8eb66467165e107d0c80c64f6c429fed1d1101d5;p=quix0rs-gnu-social.git diff --git a/actions/getfile.php b/actions/getfile.php index ad41122503..f0c98f7416 100644 --- a/actions/getfile.php +++ b/actions/getfile.php @@ -28,11 +28,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET')) { - exit(1); -} - -require_once 'MIME/Type.php'; +if (!defined('GNUSOCIAL')) { exit(1); } /** * An action for returning a requested file @@ -61,7 +57,7 @@ class GetfileAction extends Action * * @return success flag */ - function prepare($args) + protected function prepare(array $args=array()) { parent::prepare($args); @@ -75,12 +71,10 @@ class GetfileAction extends Action if (empty($path) or !file_exists($path)) { // TRANS: Client error displayed when requesting a non-existent file. $this->clientError(_('No such file.'), 404); - return false; } if (!is_readable($path)) { // TRANS: Client error displayed when requesting a file without having read access to it. $this->clientError(_('Cannot read file.'), 403); - return false; } $this->path = $path; @@ -125,9 +119,9 @@ class GetfileAction extends Action return null; } - $cache = common_memcache(); + $cache = Cache::instance(); if($cache) { - $key = common_cache_key('attachments:etag:' . $this->path); + $key = Cache::key('attachments:etag:' . $this->path); $etag = $cache->get($key); if($etag === false) { $etag = crc32(file_get_contents($this->path)); @@ -143,22 +137,22 @@ class GetfileAction extends Action /** * Handle input, produce output * - * @param array $args $_REQUEST contents - * * @return void */ - function handle($args) + protected function handle() { // undo headers set by PHP sessions $sec = session_cache_expire() * 60; header('Expires: ' . date(DATE_RFC1123, time() + $sec)); header('Cache-Control: max-age=' . $sec); - parent::handle($args); + parent::handle(); $path = $this->path; - header('Content-Type: ' . MIME_Type::autoDetect($path)); + $finfo = new finfo(FILEINFO_MIME_TYPE); + + header('Content-Type: ' . $finfo->file($path)); if (common_config('site', 'use_x_sendfile')) { header('X-Sendfile: ' . $path);