/** * 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; }
/** * 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'); } }