/** * @group FileService */ public function testCanTellPosition() { $size = $this->file->getSize(); $this->assertNotEmpty($size); $this->assertNotEmpty($this->file->open('read')); $this->assertEquals(0, $this->file->seek(2)); $this->assertEquals(2, $this->file->tell()); $this->assertFalse($this->file->eof()); $this->assertEquals(0, $this->file->seek($size)); $this->assertFalse($this->file->eof()); $this->file->read(1); $this->assertTrue($this->file->eof()); $this->assertTrue($this->file->close()); }
} // If user doesn't exist, return default icon if (!$user) { $url = "_graphics/icons/default/{$size}.png"; $url = elgg_normalize_url($url); forward($url); } $user_guid = $user->getGUID(); // Try and get the icon $filehandler = new ElggFile(); $filehandler->owner_guid = $user_guid; $filehandler->setFilename("profile/{$user_guid}{$size}.jpg"); $success = false; try { if ($filehandler->open("read")) { if ($contents = $filehandler->read($filehandler->getSize())) { $success = true; } } } catch (InvalidParameterException $e) { elgg_log("Unable to get avatar for user with GUID {$user_guid}", 'ERROR'); } if (!$success) { $url = "_graphics/icons/default/{$size}.png"; $url = elgg_normalize_url($url); forward($url); } header("Content-type: image/jpeg", true); header('Expires: ' . gmdate('D, d M Y H:i:s \\G\\M\\T', strtotime("+6 months")), true); header("Pragma: public", true); header("Cache-Control: public", true);
/** * @param $guid * @param $size * @throws IOException * @throws InvalidParameterException */ function group_get_icon($guid, $size) { /* @var ElggGroup $group */ $group = get_entity($guid); if (!$group instanceof ElggGroup) { header("HTTP/1.1 404 Not Found"); exit; } // If is the same ETag, content didn't changed. $etag = $group->icontime . $guid; if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) == "\"{$etag}\"") { header("HTTP/1.1 304 Not Modified"); exit; } if (!in_array($size, array('large', 'medium', 'small', 'tiny', 'master', 'topbar'))) { $size = "medium"; } $success = false; $filehandler = new ElggFile(); $filehandler->owner_guid = $group->owner_guid; $filehandler->setFilename("groups/" . $group->guid . $size . ".jpg"); $success = false; if ($filehandler->open("read")) { if ($contents = $filehandler->read($filehandler->getSize())) { $success = true; } } header("Content-type: image/jpeg"); header('Expires: ' . gmdate('D, d M Y H:i:s \\G\\M\\T', strtotime("+10 days")), true); header("Pragma: public", true); header("Cache-Control: public", true); header("Content-Length: " . strlen($contents)); header("ETag: \"{$etag}\""); echo $contents; exit; }