Esempio n. 1
0
 /**
  * Create reference for media.
  *
  * @param MediaInterface $media
  *
  * @return bool
  */
 public function createReference(MediaInterface $media)
 {
     $allowed = false;
     foreach ($this->contexts as $context) {
         if (in_array($media->getExtension(), $context)) {
             $allowed = true;
             break;
         }
     }
     if ($allowed === false) {
         $this->error = array('error.extensionNotAllowed', array('%extension%' => $media->getExtension()));
         return false;
     }
     // secure extension for reference
     if (!in_array($media->getExtension(), $this->trustedExtensions)) {
         $media->setExtension($media->getExtension() . '.txt');
         $media->setType($media::OTHER);
     }
     do {
         $media->setReference(sha1(microtime(true) . mt_rand()) . '.' . $media->getExtension());
     } while ($this->filesystemManipulator->has($this->originalDir . '/' . $media->getReference()));
     return true;
 }