/** * Generate a document id * * @param \ServerGrove\KbBundle\Document\ArticleFile $document * @param object $parent * * @return string */ public function generateId($document, $parent = null) { /** @var $session \PHPCR\SessionInterface */ $session = $this->getDocumentManager()->getPhpcrSession(); $root = $session->getNode('/'); if (!$root->hasNode('articles-files')) { $root->addNode('articles-files'); } return '/articles-files/' . Sluggable::urlize($document->getPath()); }
/** * @Route("/upload", name="sgkb_admin_articles_files_upload") * @method("post") * @return array */ public function uploadAction() { $form = $this->createForm(new ArticleFileType(), $document = new ArticleFile()); $status = 400; $refresh = false; $form->bind($this->getRequest()); if ($form->isValid()) { /** @var $data \Symfony\Component\HttpFoundation\File\UploadedFile */ $data = $form->get('path')->getData(); $file = $data->move($this->get('kernel')->getRootDir() . '/../web/uploads', date('YmdHi-') . $data->getClientOriginalName()); $document->setPath('/uploads/' . $file->getBasename()); $dm = $this->getDocumentManager(); $dm->persist($document); $dm->flush(); $status = 200; $form = $this->createForm(new ArticleFileType(), new ArticleFile()); $refresh = true; } return $this->render('ServerGroveKbBundle:Admin/ArticlesFiles:uploader.html.twig', array('form' => $form->createView(), 'refresh' => $refresh), new Response('', $status)); }