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