コード例 #1
0
 /**
  * Add an entry for Resource entity in database at each upload
  *
  * @param GaufretteFile $file
  * @param string $originalFilename
  * @param string $type
  * @return ResourceInterface
  * @throws \InvalidArgumentException|\UnexpectedValueException|FileNotFound
  */
 public function addFile(GaufretteFile $file, $originalFilename, $type = null)
 {
     $resource = $this->createByType($type)->setOriginalFileName($originalFilename)->setFileName($file->getKey());
     $this->updateResourceMetadata($resource, $file);
     // Custom code
     $em = $this->doctrine->getManager();
     $em->persist($resource);
     $em->flush();
     return $resource;
 }
コード例 #2
0
 /**
  * Add an entry for Resource entity in database at each upload
  * OR: find the already uploaded file based on it's hash
  *
  * @param GaufretteFile $file
  * @param string        $originalFilename
  * @param string        $type
  *
  * @throws FileNotFound
  * @throws \InvalidArgumentException
  * @throws UnexpectedValueException
  * @throws \RuntimeException
  *
  * @return ResourceInterface
  */
 public function addFile(GaufretteFile $file, $originalFilename, $type = null)
 {
     $fs = $this->getFilesystemForType($type);
     $hash = $fs->checksum($file->getKey());
     $resource = $this->findByHash($type, $hash);
     if ($resource) {
         // If resource already uploaded
         if ($fs->has($resource->getFileName())) {
             // If the file is still there
             $file->delete();
             // Delete uploaded file (because we already have one)
             return $resource;
         }
     } else {
         $resource = $this->createByType($type);
     }
     $resource->setOriginalFileName($originalFilename)->setFileName($file->getKey())->setHash($hash);
     $this->updateResourceMetadata($resource, $file);
     $em = $this->doctrine->getManager();
     $em->persist($resource);
     $em->flush();
     return $resource;
 }