| ||||
Subida de archivo opcional, comprobar si se subio Hola, estoy leyendo http://gitnacho.github.io/symfony-do...ypes/file.html para hacer un formulario en elq ue uno de los campos es para subir un archivo, sin tener este campo en ninguna entidad ni nada que ver con la base de datos sino manejado por el controlador todo lo referente al archivo, y el subir un archivo es opcional, lo que no se es como una vez recibo el formulario poder comprobar si se ha subido un archivo, y entonces proceder a moverlo, etc; o si no se subio y entonces no hacer nada con el archivo por como no se subio ninguno.
__________________ JHG |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio Haz una prueba, no recuerdo exactamente pero si efectivamente hubo upload el tipo de objeto debería ser Symfony\Component\HttpFoundation\File\UploadedFile , con hacer un instanceof debería bastar. Saludos. |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio Voy a probar a ver. Por cierto, ¿el campo file por defecto es opcional, o le tengo que indicar de alguna forma que pueden enviar el formulario aunque no lo rellenen?
__________________ JHG |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio En la doc. tienes las características de file |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio He añadido al formulario:
Código:
Y produce el error:->add('attachment', 'file')
Código:
Al parecer busca la propiedad attachment en la entidad, pero el archivo no quiero tenerlo en la base de datos relacionado de ninguna forma sino tratarlo aparte, ¿es esto posible? Neither property "attachment" nor method "getAttachment()" nor method "isAttachment()" exists in class "Compartida\CompartidaBundle\Entity\Adsite"
__________________ JHG |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio Que la entidad tenga una propiedad no quiere decir que esta este mapeada a la bbdd, tu entidad debería tener una propiedad(con sus correspondientes accessor/mutator) que no se persiste. Saludos. |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio Creo no entiendo aun del todo lo de entidad de Symfony. Yo quiero en el formulario subir un archivo o ninguno si no lo usan lo del archivo, pero luego el controlador usa el archivo de forma totalmente independiente de la entidad, no solo no esta mapeado en la bbdd sino que tampoco esta mapeado en la entidad ni siquiera necesariamente tendra relacion con la entidad, entonces, no entiendo bien lo de añadirle a la entidad esa propiedad y metodos que, al menos en el controlador yo, no voy a usar nunca. Es decir, ¿cual es realmente la metafora que se sigue con lo de entidad en Symfony que me obliga a usar una propiedad aun en este caso que ni yo voy a usarla ni necesariamente guarda relacion? porque yo anteriormente he trabajado con Django, que si guardaba una relacion mas estrecha entre modelo y base de datos, y podia mandar mas cosas en el formulario y recuperarlo del request sin que hubiese que hacer nada al modelo etc. Pero por lo que veo en este aspecto difieren un poco Symfony y Django.
__________________ JHG |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio Hay similitudes con Django pero no son iguales, el fw no te obliga, es una forma de hacerlo, un formulario no tiene porque estar asociado a una entidad http://symfony.com/doc/current/book/...ithout-a-class y en caso de estarlo y no quieres mapear puedes pasarle la opción mapped a false(esta info también esta en el enlace) |
| ||||
Respuesta: Subida de archivo opcional, comprobar si se subio Intentando obtener la extensión de un archivo subido tengo el siguiente error: Cita: Lo raro es que si comento la linea de obtener la extension con:FatalErrorException: Error: Call to undefined method Symfony\Component\Form\Form::guessExtension() in /furanet/sites/compartida.es/web/htdocs/src/Compartida/CompartidaBundle/Controller/AdsController.php line 81 Cita: y indico la extensión a mano de forma estatica como 'jpg' el resto funciona bien. $extension = $form['attachment']->guessExtension();
__________________ JHG |
Etiquetas: |