Move AvatarController over to FileDisplayResponse

This commit is contained in:
Roeland Jago Douma 2016-08-23 21:44:05 +02:00
parent 777c3ee325
commit 6740c627b8
No known key found for this signature in database
GPG Key ID: 1E152838F164D13B
1 changed files with 3 additions and 8 deletions

View File

@ -31,6 +31,7 @@ use OC\AppFramework\Utility\TimeFactory;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataDisplayResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\JSONResponse;
use OCP\Files\File;
use OCP\Files\IRootFolder;
@ -118,7 +119,7 @@ class AvatarController extends Controller {
*
* @param string $userId
* @param int $size
* @return JSONResponse|DataDisplayResponse
* @return JSONResponse|FileDisplayResponse
*/
public function getAvatar($userId, $size) {
if ($size > 2048) {
@ -129,25 +130,19 @@ class AvatarController extends Controller {
try {
$avatar = $this->avatarManager->getAvatar($userId)->getFile($size);
$resp = new DataDisplayResponse($avatar->getContent(),
$resp = new FileDisplayResponse($avatar,
Http::STATUS_OK,
['Content-Type' => $avatar->getMimeType()]);
$resp->setETag($avatar->getEtag());
// Let cache this!
$resp->addHeader('Pragma', 'public');
// Cache for 15 minutes
$resp->cacheFor(900);
// Set last modified
$lastModified = new \DateTime();
$lastModified->setTimestamp($avatar->getMTime());
$resp->setLastModified($lastModified);
$expires = new \DateTime();
$expires->setTimestamp($this->timeFactory->getTime());
$expires->add(new \DateInterval('PT15M'));
$resp->addHeader('Expires', $expires->format(\DateTime::RFC2822));
} catch (NotFoundException $e) {
$user = $this->userManager->get($userId);
$resp = new JSONResponse([