public function indexAction() { $id = $this->params()->fromQuery('id', null); $token = $this->params()->fromQuery('token', null); if (!$id) { return new JsonModel(['status' => 0, 'errors' => ['You must supply the image id']]); } if (!$token) { return new JsonModel(['status' => 0, 'errors' => ['You must supply the access token']]); } /** @var Upload $upload */ $upload = Upload::where('access_token', '=', $token)->where('id', '=', $id)->where('access_token_expiration', '>=', time())->first(); if (!$upload) { return new JsonModel(['status' => 0, 'errors' => ['The request has expired or invalid upload id requested']]); } // get image content $response = $this->getResponse(); $response->setContent($upload->content); $response->getHeaders()->addHeaderLine('Content-Type', $upload->headers)->addHeaderLine('Content-Length', mb_strlen($upload->content)); return $response; }