Example #1
0
 /**
  * Creates a single file.
  *
  * @param UploadedFile $uploadedFile
  * @param Category $category
  * @param ObjectManager $em
  * @param $type
  * @param null $name
  */
 protected function createFile(UploadedFile $uploadedFile, Category $category, ObjectManager $em, $type, $name = null)
 {
     $repo = $this->getDoctrine()->getRepository(File::class);
     $fileName = $uploadedFile->getClientOriginalName();
     $file = $repo->findOneBy(['category' => $category, 'type' => $type]);
     if ($file) {
         $file->unlink();
     } else {
         $file = new File();
     }
     $file->setCategory($category);
     $file->setPath("files/uploads/{$fileName}");
     $file->setType($type);
     $file->setName($name);
     $file->setCreatedAt(new \DateTime());
     $uploadedFile->move($this->get('kernel')->getRootDir() . '/../web/files/uploads', $fileName);
     $em->persist($file);
 }
 /**
  * @Route("/myRepoFunctions/filesSubmit/{parent_dir}", name="filesSubmit", defaults={"parent_dir" = null})
  */
 public function filesSubmitAction($parent_dir, Request $request)
 {
     $files = new Files();
     $filesForm = $this->createForm(FilesType::class, $files, ['action' => $parent_dir]);
     $filesForm->add('submit', SubmitType::class, array('label' => 'Upload Files', 'attr' => array('class' => 'btn btn-default pull-right')));
     $em = $this->getDoctrine()->getManager();
     $user = $this->getUser();
     $current_dir = $parent_dir ? $em->getRepository('AppBundle:Directory')->findOneBy(['encodedName' => $parent_dir]) : null;
     $filesForm->handleRequest($request);
     if ($filesForm->isValid()) {
         $filesArray = $files->getFiles();
         foreach ($filesArray as $item) {
             $file = new File();
             $file->setDirectory($current_dir);
             $file->setName($item->getClientOriginalName());
             $em->persist($file);
             $file->uploadFile($item, $user, $current_dir);
         }
         $em->flush();
         return $this->redirectToRoute('dir_show', ['dir_name' => $parent_dir]);
     }
     return false;
 }