En el post anterior hemos visto como crear el formulario de añadir posts, sin embargo no funciona la subida de la imágen. En este artículo veremos como subir ficheros en Symfony2.
Es sencillo, simplemente en nuestro formulario definimos un campo tipo file y en la entidad añadimos los siguientes métodos.
//SUBIDAS public function getAbsolutePath() { return null === $this->image ? null : $this->getUploadRootDir() . '/' . $this->image; } public function getWebPath() { return null === $this->image ? null : $this->getUploadDir() . '/' . $this->image; } public function getUploadRootDir() { return __DIR__ . '/../../../../web/' . $this->getUploadDir(); } protected function getUploadDir() { return 'uploads'; } public function upload() { if (null === $this->getImage()) { return; } $this->getImage()->move( $this->getUploadRootDir(), $this->getImage()->getClientOriginalName() ); $this->image = $this->getImage()->getClientOriginalName(); $this->file = null; } public function removeUpload() { if ($file = $this->getAbsolutePath()) { unlink($file); } }
Con estos métodos Symfony2 se encargará de guardar la imagen en el directorio web/uploads como le hemos indicado. El solo hará la magia, solamente tendremos que llamar al método upload antes de el persist de la entidad.
25 enero, 2015
hola víctor, tu blog me ha parecido genial , pero a ver si me podes ayudar en esto, estoy realizando un directorio web, la idea es q salga cada usuario con su foto y télefono, he intentado de mil formas y no me sube la foto, en la plantilla twig como le hago, uso sf2, gracias de antemano
31 enero, 2015
Tengo unos ejemplos de como realizar un blog desde cero con Symfony2 en los que a lo mejor te puedes inspirar. Un saludo.