Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
Cómo manejan Gatsby Functions la carga de archivos en el formulario de contacto

Podría hacer un formulario de contacto usando Gatsby Functions y SendGrid. El valor de Input text y Textarea se puede enviar con éxito, pero me pregunto cómo puedo manejar el archivo para cargarlo y enviarlo. <input type="file" id="formFile" /> En el caso del enrutador API de Next.js, parece ser posible instalando el paquete "Next-connect" y "multiparty" . ¿Alguna idea en el caso de las funciones de Gatsby ?

api/form_sent.js

 export default function formHandler(req, res) { const sgMail = require('@sendgrid/mail'); sgMail.setApiKey(process.env.SENDGRID_APIKEY); const { method, body } = req; const mailData = { from: process.env.AUTHORIZED_SENDER, to: body.formEmail, subject: 'question from web', html: `<p>${body.formName}<p>${body.formTextarea}</p>`, } const results = sgMail.send(mailData) .then(result => res.status(200).json(JSON.stringify(result))) .catch(error => res.status(500).json(JSON.stringify(error))) }

páginas/formulario.js

 import * as React from "react" import Layout from "../components/layout" export default function FormPage() { const [serverResponse, setServerResponse] = React.useState(``) async function onSubmit(e) { e.preventDefault() const response = await window .fetch(`/api/send`, { method: `POST`, headers: { "content-type": "application/json", }, body: JSON.stringify(value), }) .then(res => res.json()) setServerResponse(response) } return ( <Layout> <form onSubmit={onSubmit} method="POST" action="/api/send"> <input type="text" id="formName" /> <input type="email" id="formEmail" /> <textarea id="formTextarea"></textarea> <input type="file" id="formFile" /> <button type="submit">Send</button> </form> </Layout>
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda