/**
  * Transforms a collection os files on session on entities
  *
  * @throws TransformationFailedException if object (issue) is not found.
  */
 public function reverseTransform($id)
 {
     // Pasar los ficheros almacenados en la sesiĆ³n a la carpeta web y devolver el array de ficheros
     $manager = $this->orphanageManager->get('gallery');
     $images = $manager->uploadFiles();
     if (count($images) == 0) {
         return null;
     } else {
         if (count($images) == 1) {
             $file = $this->om->getRepository('AppBundle:File')->findOneByPath('uploads/gallery/' . $images[0]->getFilename());
             if ($file == null) {
                 $file = new File();
                 $file->setPath('uploads/gallery/' . $images[0]->getFilename());
                 $this->om->persist($file);
                 $this->om->flush();
             }
             $data = $file;
         } else {
             $data = array();
             foreach ($images as $image) {
                 $file = $this->om->getRepository('AppBundle:File')->findOneByPath('uploads/gallery/' . $image->getFilename());
                 if ($file == null) {
                     $file = new File();
                     $file->setPath('uploads/gallery/' . $image->getFilename());
                     $this->om->persist($file);
                     $this->om->flush();
                 }
                 $data[] = $file;
             }
             $this->om->flush();
         }
     }
     return $data;
 }
Example #2
0
 /**
  * @Route("/doc/new/{docid}", name="file_new")
  */
 public function newAction(Request $request, $docid)
 {
     $storage = $this->get('app.storage_helper');
     $repo = $this->getDoctrine()->getManager()->getRepository('AppBundle:Document');
     $document = $repo->find($docid);
     if (!$document) {
         throw $this->createNotFoundException('No document found for id ' . $docid);
     }
     $file = new File();
     $file->setTitle(sprintf('Seite %d', count($document->getFiles()) + 1));
     $file->setDocument($document);
     $file->setPath($document->getPath());
     $form = $this->createForm(FileType::class, $file);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $file->setCreated(new \Datetime());
         $em = $this->getDoctrine()->getManager();
         $em->persist($file);
         $em->flush();
         $storage->createThumbnail($file);
         $storage->extractContent($file);
         $em->persist($file);
         $em->flush();
         return $this->redirectToRoute('doc', ['id' => $file->getDocument()->getId()]);
     }
     return $this->render('file/new.html.twig', ['file' => $file, 'form' => $form->createView(), 'document' => $document]);
 }
Example #3
0
 protected function createFile(UploadedFile $uploadedFile, ObjectManager $em, $type)
 {
     $file = $this->getDoctrine()->getRepository(File::class)->findOneBy(['type' => $type]);
     if ($file) {
         $file->unlink();
     } else {
         $file = new File();
     }
     $fileName = $uploadedFile->getClientOriginalName();
     $file->setPath("files/uploads/{$fileName}");
     $file->setType($type);
     $file->setCreatedAt(new \DateTime());
     $uploadedFile->move($this->get('kernel')->getRootDir() . '/../web/files/uploads', $fileName);
     $em->persist($file);
 }
Example #4
0
 public function load(ObjectManager $manager)
 {
     /*
             $connection = $manager->getConnection();
             $dbPlatform = $connection->getDatabasePlatform();
     #        $connection->query('SET FOREIGN_KEY_CHECKS=0');
             $q = $dbPlatform->getTruncateTableSql('documents');
             $connection->executeUpdate($q);
             $q = $dbPlatform->getTruncateTableSql('files');
             $connection->executeUpdate($q);
      #       $connection->query('SET FOREIGN_KEY_CHECKS=1');
     */
     for ($i = 0; $i <= 10; $i++) {
         $document = new Document();
         $document->setTitle('Der Titel Nr. ' . $i);
         $document->setDocDate(new \Datetime());
         $document->setPath('/home/jacek/dir');
         $document->setCreated(new \Datetime());
         $document->setTags('tag1 tag2 tag3');
         $r = mt_rand(1, 2);
         for ($j = 0; $j <= $r; $j++) {
             $file = new File();
             $file->setTitle('Titel der Datei Nr. ' . $j);
             $file->setFilename('Dateiname.ext');
             $file->setPath('/home/jacek/dir');
             $file->setFiletype('ext');
             $file->setContent('blablabla');
             $file->setCreated(new \Datetime());
             $file->setDocument($document);
             $manager->persist($file);
             print "File angelegt: {$file->getTitle()} \n";
         }
         $manager->persist($document);
         print "Doc angelegt: {$document->getTitle()} \n";
     }
     $manager->flush();
 }