Beispiel #1
0
 /**
  * Get the new and old image data
  *
  * @param Image $image
  * @param string $imagePath
  * @param boolean $generatePathFromClone
  *
  * @return array
  */
 protected function getImageData(Image $image, $imagePath, $generatePathFromClone)
 {
     $imageData = [];
     if ($generatePathFromClone) {
         $clonedImage = $image->createClone();
         $imageData['newImagePathFromContent'] = Media::getPathFromContent($clonedImage);
         unset($clonedImage);
     } else {
         $imageData['newImagePathFromContent'] = Media::getPathFromContent($image);
     }
     $imageData['oldImagePath'] = $this->application->getMediaDir() . DIRECTORY_SEPARATOR . $imagePath;
     $imageData['newImagePath'] = $this->application->getMediaDir() . DIRECTORY_SEPARATOR . $imageData['newImagePathFromContent'];
     // in some case Media:getPathFromContent does not return the file extension
     if (!pathinfo($imageData['newImagePath'], PATHINFO_EXTENSION)) {
         $oldExtension = '.' . pathinfo($imageData['oldImagePath'], PATHINFO_EXTENSION);
         $imageData['newImagePath'] .= $oldExtension;
         $imageData['newImagePathFromContent'] .= $oldExtension;
     }
     return $imageData;
 }
 /**
  * Move an uploaded file to the temporary directory and update file content.
  *
  * @param  \BackBee\CoreDomain\ClassContent\AbstractClassContent            $file
  * @param  string                                                $newfilename
  * @param  string                                                $originalname
  *
  * @return boolean|string
  * @throws \BackBee\ClassContent\Exception\ClassContentException Occures on invalid content type provided
  */
 public function updateFile(AbstractClassContent $file, $newfilename, $originalname = null, $src = null)
 {
     if (false === $file instanceof ElementFile) {
         throw new ClassContentException('Invalid content type');
     }
     if (null === $originalname) {
         $originalname = $file->originalname;
     }
     $base_dir = $this->_temporarydir;
     $file->originalname = $originalname;
     $file->path = Media::getPathFromContent($file);
     if (null === $file->getDraft()) {
         $base_dir = $this->isInMediaLibrary($file) ? $this->_mediadir : $this->_storagedir;
     }
     $moveto = $file->path;
     File::resolveFilepath($moveto, null, array('base_dir' => $base_dir));
     try {
         if ($src === null) {
             File::resolveFilepath($newfilename, null, array('base_dir' => $this->_temporarydir));
             File::move($newfilename, $moveto);
         } else {
             $dir = dirname($moveto);
             if (!is_dir($dir)) {
                 File::mkdir($dir);
             }
             file_put_contents($moveto, base64_decode($src));
         }
         $this->dispatchPostUploadEvent($moveto, $file->path);
     } catch (\BackBee\Exception\BBException $e) {
         return false;
     }
     return $moveto;
 }