Akcja odpowiadająca za upload plików:
W pliku Picture.php mam ustawione reguły:
public function uploadAction() { if (false === $this->get('security.context')->isGranted('ROLE_USER')) { throw new AccessDeniedException(); } $request = $this->getRequest(); $pic = new Picture(); $form = $this->createForm(new UploadForm(), $pic); if ($request->getMethod() == 'POST') { $form->bindRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getEntityManager(); $cat = $em->getRepository("PiachsoftDemotBundle:Category")->findOneByName('poczekalnia'); $pic->setUser($this->get('security.context')->getToken()->getUser()); $pic->addCategory($cat); $validator = $this->get('validator'); $errors = $validator->validate($pic); $errorstring = ""; foreach ($errors as $error) { $errorstring .= $error; } $this->get('session')->setFlash('error', $errorstring); } else { //prePersist - generowanie nazwy, postPersist - upload $em->persist($pic); $em->flush(); $this->get('session')->setFlash('notice', "Obrazek został wysłany"); } return $this->redirect($this->generateUrl('upload')); } } 'form' => $form->createView(), )); }
W pliku app/config/config.yml rzecz jasna ustawiłem:
/** * @Assert\File( * maxSize = "200k", * mimeTypes = {"application/pdf", "application/x-pdf"}, * mimeTypesMessage = "Please upload a valid PDF" */ public $file;
Z tego co rozumiem to powinno wystarczyć. Dlaczego w takim razie nie działa?
framework: validation: { enable_annotations: true }