Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function returnImage($id, $formatKey)
 {
     $setExpireHeaders = false;
     try {
         $media = $this->mediaRepository->findMediaByIdForRendering($id, $formatKey);
         if (!$media) {
             throw new ImageProxyMediaNotFoundException('Media was not found');
         }
         $fileVersion = $this->getLatestFileVersion($media);
         if (!$this->checkMimeTypeSupported($fileVersion->getMimeType())) {
             throw new InvalidMimeTypeForPreviewException($fileVersion->getMimeType());
         }
         // Convert Media to format.
         $responseContent = $this->converter->convert($fileVersion, $formatKey);
         // HTTP Headers
         $status = 200;
         $setExpireHeaders = true;
         $finfo = new \finfo(FILEINFO_MIME_TYPE);
         $mimeType = $finfo->buffer($responseContent);
         // Save image.
         if ($this->saveImage) {
             $this->formatCache->save($responseContent, $media->getId(), $this->replaceExtension($fileVersion->getName(), $mimeType), $fileVersion->getStorageOptions(), $formatKey);
         }
     } catch (MediaException $e) {
         $responseContent = null;
         $status = 404;
         $mimeType = null;
     }
     // Set header.
     $headers = $this->getResponseHeaders($mimeType, $setExpireHeaders);
     // Return image.
     return new Response($responseContent, $status, $headers);
 }
Exemplo n.º 2
0
 /**
  * @param $format
  * @param $fileExtension
  * @param MediaException $e
  *
  * @return array
  *
  * @throws ImageProxyInvalidImageFormat
  * @throws MediaException
  */
 protected function returnFileExtensionIcon($format, $fileExtension, $e)
 {
     $imageExtension = 'png';
     $placeholder = dirname(__FILE__) . '/../../Resources/images/file-' . $fileExtension . '.png';
     if (!file_exists(dirname(__FILE__) . '/../../Resources/images/file-' . $fileExtension . '.png')) {
         throw $e;
     }
     $image = $this->converter->convert($placeholder, $this->getFormat($format));
     $image = $image->get($imageExtension);
     return [$image, 200, $imageExtension];
 }