Пример #1
0
 /**
  * Optimize the given uploaded image.
  *
  * @param \Fab\Media\FileUpload\UploadedFileInterface $uploadedFile
  * @return \Fab\Media\FileUpload\UploadedFileInterface
  */
 public function optimize($uploadedFile)
 {
     $imageInfo = getimagesize($uploadedFile->getFileWithAbsolutePath());
     $currentWidth = $imageInfo[0];
     $currentHeight = $imageInfo[1];
     // resize an image if this one is bigger than telling by the settings.
     if (is_object($this->storage)) {
         $storageRecord = $this->storage->getStorageRecord();
     } else {
         // Will only work in the BE for now.
         $storage = $this->getMediaModule()->getCurrentStorage();
         $storageRecord = $storage->getStorageRecord();
     }
     if (strlen($storageRecord['maximum_dimension_original_image']) > 0) {
         /** @var \Fab\Media\Dimension $imageDimension */
         $imageDimension = GeneralUtility::makeInstance('Fab\\Media\\Dimension', $storageRecord['maximum_dimension_original_image']);
         if ($currentWidth > $imageDimension->getWidth() || $currentHeight > $imageDimension->getHeight()) {
             // resize taking the width as reference
             $this->resize($uploadedFile->getFileWithAbsolutePath(), $imageDimension->getWidth(), $imageDimension->getHeight());
         }
     }
     return $uploadedFile;
 }
Пример #2
0
 /**
  * Optimize the given uploaded image
  *
  * @param \Fab\Media\FileUpload\UploadedFileInterface $uploadedFile
  * @return \Fab\Media\FileUpload\UploadedFileInterface
  */
 public function optimize($uploadedFile)
 {
     $orientation = $this->getOrientation($uploadedFile->getFileWithAbsolutePath());
     $isRotated = $this->isRotated($orientation);
     // Only rotate image if necessary!
     if ($isRotated > 0) {
         $transformation = $this->getTransformation($orientation);
         $imParams = '###SkipStripProfile###';
         if ($transformation !== '') {
             $imParams .= ' ' . $transformation;
         }
         $tempFileInfo = $this->gifCreator->imageMagickConvert($uploadedFile->getFileWithAbsolutePath(), '', '', '', $imParams, '', array(), TRUE);
         if ($tempFileInfo) {
             // Replace original file
             @unlink($uploadedFile->getFileWithAbsolutePath());
             @rename($tempFileInfo[3], $uploadedFile->getFileWithAbsolutePath());
             if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im_version_5'] === 'gm') {
                 $this->resetOrientation($uploadedFile->getFileWithAbsolutePath());
             }
         }
     }
     return $uploadedFile;
 }
Пример #3
0
 /**
  * Return the target folder for the uploaded file.
  *
  * @param UploadedFileInterface $uploadedFile
  * @param ResourceStorage $storage
  * @return \TYPO3\CMS\Core\Resource\Folder
  */
 public function getTargetFolderForUploadedFile(UploadedFileInterface $uploadedFile, ResourceStorage $storage)
 {
     // default is the root level
     $folder = $storage->getRootLevelFolder();
     // get the root folder by default
     // Get a possible mount point coming from the storage record.
     $storageRecord = $storage->getStorageRecord();
     $mountPointIdentifier = $storageRecord['mount_point_file_type_' . $uploadedFile->getType()];
     if ($mountPointIdentifier > 0) {
         // We don't have a Mount Point repository in FAL, so query the database directly.
         $record = $this->getDatabaseConnection()->exec_SELECTgetSingleRow('path', 'sys_filemounts', 'deleted = 0 AND uid = ' . $mountPointIdentifier);
         if (!empty($record['path'])) {
             $folder = $storage->getFolder($record['path']);
         }
     }
     return $folder;
 }
Пример #4
0
 /**
  * Return a file name given an uploaded file
  *
  * @param UploadedFileInterface $uploadedFile
  * @return string
  */
 public function getFileName(UploadedFileInterface $uploadedFile)
 {
     $pathInfo = pathinfo($uploadedFile->getOriginalName());
     $fileName = $this->sanitizeFileName($pathInfo['filename']);
     $fileNameWithExtension = $fileName;
     if (!empty($pathInfo['extension'])) {
         $fileNameWithExtension = sprintf('%s.%s', $fileName, $pathInfo['extension']);
     }
     return $fileNameWithExtension;
 }