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