IIC2513-2020-1 / syllabus

Material del curso
35 stars 3 forks source link

Manejo de Arrays al usar encType="multipart/form-data" en un form #156

Closed rjcavada closed 4 years ago

rjcavada commented 4 years ago

Hola! Tengo el siguiente problema:

Estoy usando el encType="multipart/form-data" para poder hacer un upload de una imagen, lo que ocurre es que en este mismo form estoy pasando un array. Entonces cuando hago un console.log(ctx.request.body) me imprime lo siguiente { name: 'fdasdasdasdas', description: 'fasdsad ', genre: 'Classical', avaincies: '3', 'instruments[]': [ 'sdasdsa', 'asdasda' ], rating: '0', date: 'Tue Jun 30 2020 12:20:34 GMT-0400 (-04)', create: 'Create' }

Donde instruments es el array. Sin embargo cuando no uso el encType="multipart/form-data" al hacer el mismo console.log(ctx.request.body) obtengo este resultado: { name: 'dadas ', description: 'seda dadas asa', genre: 'Classic Rock', avaincies: '2', instruments: [ 'sadasda' ], rating: '0', date: 'Tue Jun 30 2020 12:17:13 GMT-0400 (-04)', create: 'Create' }

Entonces en el primer caso no puedo acceder a ctx.request.body.instruments y en el segundo si.

gpvidal commented 4 years ago

Hola @rjcavada ,

Esto tiene relación por como se envía el formulario (justamente con el enc type).

Cuando no usas multipart/form-data el default es application/x-www-form-urlencoded. Para enviar arrays es distinto y creo que esto podría ayudar:

https://community.postman.com/t/how-to-send-array-in-x-www-form-urlencoded/5140/2

Saludos,

rjcavada commented 4 years ago

Mi duda es si efectivamente puedo mandar arrays al usar multipart/form-data, mas que nada para poder mandar archivos y arrays en el mismo form

gpvidal commented 4 years ago

Ahh claro, archivos van con multipart/form-data :wink:

rjcavada commented 4 years ago

Pero mi duda es como hacer poder enviar arrays al usar multipart/form-data y poder acceder a ese atributo Este es el console.log(cox.request.body) sin multipart/form-data Captura de Pantalla 2020-06-30 a la(s) 21 50 47 Y este es con multipart/form-data Captura de Pantalla 2020-06-30 a la(s) 21 51 02 Mi problemas es que al usar multipart/form-data el atributo instruments deja de funcionar como array, es mas no puedo acceder a el