/** * 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; }
/** * @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]); }
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); }
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(); }