Example #1
0
 /**
  * Speichert eine gewöhnliche Datei als UploadedFile
  *
  */
 public function store(File $file, $description = NULL, $flags = 0x0)
 {
     $hash = $file->getSha1();
     if ($flags & self::IF_NOT_EXISTS) {
         try {
             $uplFile = $this->load($hash);
             if ($flags & self::UPDATE_ORIGINALNAME && $file instanceof \Psc\System\UploadedFile) {
                 $uplFile->setOriginalName($file->getOriginalName());
             }
             return $uplFile;
         } catch (UploadedFileNotFoundException $e) {
         }
     }
     $uplFile = $this->newInstance($file, $description);
     $uplFile->setHash($hash);
     // wir speichern das hier "doppelt", damit wir in der datenbank danach indizieren können
     if ($file instanceof \Psc\System\UploadedFile) {
         $uplFile->setOriginalName($file->getOriginalName());
     }
     /* im Cache ablegen */
     $cacheFile = $this->cache->store(array(mb_substr($hash, 0, 1), $hash), $file);
     // afaik brauchen wir sourcePath hier nicht, denn es ist eignetlich egal wo der Cache seinen Krams ablegt
     // mit derselben Instanz des Caches kommen wir immer wieder an die SourceFile ran
     $this->persist($uplFile);
     return $uplFile;
 }