/** * @param $file * @param ResponseInterface $response * @param Request $request */ protected function handleUpload($file, ResponseInterface $response, Request $request) { /** @var $mediaAdmin \Sonata\MediaBundle\Admin\ORM\MediaAdmin */ $mediaAdmin = $this->container->get('sonata.media.admin.media'); $mediaAdmin->setRequest($request); /** @var Media $media */ $media = $mediaAdmin->getNewInstance(); $media->setEnabled(true); $media->setName($file->getClientOriginalName()); $media->setBinaryContent($file); $checksum = Util\Checksum::fromFile($file->getPathName()); $duplicate = $mediaAdmin->checkForDuplicate($media, $checksum); if ($duplicate) { $path = $mediaAdmin->generateObjectUrl('edit', $duplicate); $response->offsetSet('url', $path); $response->offsetSet('id', $duplicate->getId()); throw new DuplicateMediaException('File is duplicate'); } try { $mediaAdmin->create($media); $path = $mediaAdmin->generateObjectUrl('edit', $media); $response->offsetSet('url', $path); $response->offsetSet('id', $media->getId()); } catch (\Exception $e) { throw new UploadException($e->getMessage()); } }
/** * @param $file * @param ResponseInterface $response * @param Request $request */ protected function handleUpload($file, ResponseInterface $response, Request $request) { /** @var $mediaAdmin \Sonata\MediaBundle\Admin\ORM\MediaAdmin */ $mediaAdmin = $this->container->get('sonata.media.admin.media'); $mediaAdmin->setRequest($request); /** @var Media $media */ $media = $mediaAdmin->getNewInstance(); $media->setEnabled(true); $media->setName($file->getClientOriginalName()); $media->setBinaryContent($file); $tags = explode(',', $request->get('tags')); $tagCollection = new ArrayCollection(); foreach ($tags as $tagId) { $tag = $this->container->get('doctrine')->getRepository('NetworkingInitCmsBundle:Tag')->find($tagId); if ($tag) { $tagCollection->add($tag); } } $media->setTags($tagCollection); $checksum = Util\Checksum::fromFile($file->getPathName()); $duplicate = $mediaAdmin->checkForDuplicate($media, $checksum); if ($duplicate) { $path = $mediaAdmin->generateObjectUrl('edit', $duplicate); $response->offsetSet('url', $path); $response->offsetSet('id', $duplicate->getId()); throw new DuplicateMediaException('File is duplicate'); } try { $mediaAdmin->create($media); $path = $mediaAdmin->generateObjectUrl('edit', $media); $response->offsetSet('url', $path); $response->offsetSet('id', $media->getId()); } catch (\Exception $e) { throw new UploadException($e->getMessage()); } }
public function checksum($key) { return Util\Checksum::fromFile($this->computePath($key)); }
/** * @param $media * @return string */ public function getChecksum($media) { if ($media->getBinaryContent() instanceof UploadedFile) { return Util\Checksum::fromFile($media->getBinaryContent()->getPathName()); } return false; }
/** * {@inheritDoc} */ public function checksum($key) { return Checksum::fromFile($this->repository->resolveFullPath($key)); }
/** * {@inheritDoc} */ public function checksum($key) { $this->assertExists($key); return Util\Checksum::fromFile($this->computePath($key)); }