/**
  * @inheritdoc
  */
 public function saveFile(ResourceObjectInterface $resource)
 {
     $file = $resource->getFile();
     $path = $this->getLocationConfig('path', $resource->getLocation(), $this->config);
     if ($resource->getRelativePath()) {
         $path .= $resource->getRelativePath();
     }
     $this->fileSystem->copy($file->getRealPath(), $path . DIRECTORY_SEPARATOR . $resource->getName());
 }
示例#2
0
 /**
  * Set the name of resource using the context and resource mapping information
  *
  * @param ResourceObjectInterface $resource
  * @param string                  $baseName default name
  * @param object                  $context  context to resolve tokens
  */
 protected function setResourceName(ResourceObjectInterface $resource, $baseName = null, $context = null)
 {
     if ($baseName) {
         if (strpos($baseName, $resource->getFile()->guessExtension()) === false) {
             $filename = $baseName . '.' . $resource->getFile()->guessExtension();
         } else {
             $filename = $baseName;
         }
     } else {
         if ($resource->getId()) {
             $filename = $resource->getName();
         } else {
             //create unique name
             $filename = sha1(uniqid(mt_rand(), true)) . '.' . $resource->getFile()->guessExtension();
         }
     }
     $mapping = $this->getResourceMapping($this->config, $resource);
     if (isset($mapping['name'])) {
         $filename = $this->parseName($mapping['name'], $context, $baseName);
         $filename .= '.' . $resource->getFile()->guessExtension();
         $resource->setName($filename);
         $filename = basename($filename);
     }
     $resource->setName($filename);
 }
 /**
  * remove
  *
  * @param ResourceObjectInterface   $resource
  * @param ResourceResolverInterface $resolver
  */
 public function remove(ResourceObjectInterface $resource, ResourceResolverInterface $resolver)
 {
     if ($resource->getFile() && isset($this->toRemove[md5($resource->getFile()->getFilename())])) {
         $resolver->deleteFile($resource);
     }
 }