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