Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

300
Visualizações
¿Cómo puedo cargar un archivo y también incluir datos JSON con Fetch API?

Espero que estés teniendo un buen día. Así que estoy usando Fetch API para cargar archivos en el servidor, pero también quiero incluir una cadena como JSON para mi backend. Pero soy incapaz de hacerlo.

En este momento, así es como se ve mi función de carga de archivos. Esto funciona perfectamente si solo quiero cargar un archivo y no incluir una cadena como JSON:

 const uploadFile = ( e ) => { const uploadedFile = e.target.files[ 0 ]; const formData = new FormData(); formData.append( 'data', uploadedFile ); const rawResponse = await fetch( '/upload-file', { method: 'POST', body: formData }); }; uploadFile();

Obtener el archivo en mi backend de NodeJS con req.files.data ;

Pero si incluyo una cadena como JSON e intento cargar el archivo, no estoy definido en mi backend de NodeJS. Así es como se ve con una cadena como JSON:

 const uploadFile = ( e ) => { const uploadedFile = e.target.files[ 0 ]; const formData = new FormData(); const str = 'from client'; formData.append( 'data', uploadedFile ); const rawResponse = await fetch( '/upload-file', { method: 'POST', body: { file: formData, str } }); }; uploadFile();

Ahora, si quiero obtener el archivo en mi backend con:

req.files.file , obtengo undefined .

req.body , obtengo { 'object Object': '' } .

req.files.data , obtengo UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'data' of undefined .

req.body.data , obtengo undefined .

¿Qué está fallando aquí?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

lo agrega a FormData , no al cuerpo

 const uploadFile = ( e ) => { const uploadedFile = e.target.files[ 0 ]; const formData = new FormData(); const str = 'from client'; formData.append( 'data', uploadedFile ); formData.append( 'str', str ); const rawResponse = await fetch( '/upload-file', { method: 'POST', body: formData }); }; uploadFile();
about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente agregue el valor al objeto FormData, igual que ya hizo con el archivo

 formData.append( 'str', '["some JSON here"]' );

Y luego sigue enviando solo ese objeto, body: formData

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda