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