Subir archivos en Symfony3

Subir archivos en Symfony3 es extremadamente fácil. Vamos a ver como subir archivos de forma fácil con Symfony 3.

Primero tenemos que definir un campo de tipo file en nuestro formulario.

$builder ->add('image', FileType::class,array(
				"label" => "Imagen:",
				"attr" =>array("class" => "form-control")
			));

En el controlador cuando el formulario se haya enviado, subiremos el fichero:

// Recogemos el fichero
$file=$form['image']->getData();

// Sacamos la extensión del fichero
$ext=$file->guessExtension();

// Le ponemos un nombre al fichero
$file_name=time().".".$ext;

// Guardamos el fichero en el directorio uploads que estará en el directorio /web del framework
$file->move("uploads", $file_name);

// Establecemos el nombre de fichero en el atributo de la entidad
$miEntidad->setImage($file_name);

Después habrá que llamar al persist y al flush de Doctrine, para volcar la información del formulario, guardada en la entidad, en la base de datos.

En la vista, mostramos el formulario y le decimos el enctype para que pueda enviar ficheros.

{{form_start(form, { 'enctype':"multipart/form-data"})}}
{{form_end(form)}}

Con esto la subida de ficheros ya funcionaría.

Más información:
http://symfony.com/doc/current/cookbook/controller/upload_file.html

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post