Exemplo n.º 1
0
 /**
  * Returns an array containing everything needed by the client to be able to display a preview
  *
  *    * fileid:  the file's ID
  *    * mimetype: the file's media type
  *    * preview: the preview's content
  *
  * Example logger
  * $this->logger->debug(
  * "[PreviewService] Path : {path} / mime: {mimetype} / fileid: {fileid}",
  * [
  * 'path'     => $preview['data']['path'],
  * 'mimetype' => $preview['data']['mimetype'],
  * 'fileid'   => $preview['fileid']
  * ]
  * );
  *
  * @todo Get the max size from the settings
  *
  * @param File $file
  * @param int $maxX asked width for the preview
  * @param int $maxY asked height for the preview
  * @param bool $keepAspect
  * @param bool $base64Encode
  *
  * @return array<string,\OC_Image|string>|false preview data
  */
 public function createPreview($file, $maxX = 0, $maxY = 0, $keepAspect = true, $base64Encode = false)
 {
     $userId = $this->environment->getUserId();
     $imagePathFromFolder = $this->environment->getPathFromUserFolder($file);
     $this->previewManager->setupView($userId, $file, $imagePathFromFolder);
     $preview = $this->previewManager->preparePreview($maxX, $maxY, $keepAspect);
     if ($preview) {
         if ($base64Encode) {
             $preview['preview'] = $this->encode($preview['preview']);
         }
     }
     return $preview;
 }
Exemplo n.º 2
0
 /**
  * Returns an array containing everything needed by the client to be able to display a preview
  *
  *    * fileid:  the file's ID
  *    * mimetype: the file's media type
  *    * preview: the preview's content
  *
  * Example logger
  * $this->logger->debug(
  * "[PreviewService] Path : {path} / mime: {mimetype} / fileid: {fileid}",
  * [
  * 'path'     => $preview['data']['path'],
  * 'mimetype' => $preview['data']['mimetype'],
  * 'fileid'   => $preview['fileid']
  * ]
  * );
  *
  * @todo Get the max size from the settings
  *
  * @param File $file
  * @param int $maxX asked width for the preview
  * @param int $maxY asked height for the preview
  * @param bool $keepAspect
  * @param bool $base64Encode
  *
  * @return array <string,\OC_Image|string>|false preview data
  * @throws InternalServerErrorServiceException
  */
 public function createPreview($file, $maxX = 0, $maxY = 0, $keepAspect = true, $base64Encode = false)
 {
     try {
         $userId = $this->environment->getUserId();
         $imagePathFromFolder = $this->environment->getPathFromUserFolder($file);
         $this->previewManager->setupView($userId, $file, $imagePathFromFolder);
         $preview = $this->previewManager->preparePreview($maxX, $maxY, $keepAspect);
         if ($preview && $base64Encode) {
             $preview['preview'] = $this->encode($preview['preview']);
         }
         return $preview;
     } catch (\Exception $exception) {
         throw new InternalServerErrorServiceException('Preview generation has failed');
     }
 }