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

469
Vistas
¿Cómo obtengo una imagen cargada en el siguiente js y la guardo?

¿Cómo obtengo una imagen cargada en la ruta API next.js y la guardo en una carpeta pública? Tengo el tren delantero listo. Estoy cargando imágenes a un punto final usando JavaScript simple. aquí está la función onSubmit para cargar imágenes. Sugiérame si lo estoy haciendo mal aquí. La pregunta principal es ¿cómo lo recupero?

 const onSubmit=async(e)=>{ e.preventDefault(); const fd=new FormData() fd.append('myfile',image.name) let res=await fetch(`http://localhost:3000/api/upload`,{ method: 'POST', headers: { "Content-Type": "image/jpeg", }, body: fd, }) let response=await res.json();

una pregunta extra más, seguramente no es una buena idea guardar las imágenes cargadas en una carpeta pública. Lo he guardado en algún lugar de la nube.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Este es el código de punto final que utilicé para cargar la imagen en nextjs, requiere algunos paquetes adicionales, también los enumeraré a continuación.

  1. próxima conexión
  2. multrar
  3. uuid
 import nextConnect from "next-connect"; import multer from "multer"; import { v4 as uuidv4 } from "uuid"; let filename = uuidv4() + "-" + new Date().getTime(); const upload = multer({ storage: multer.diskStorage({ destination: "./public/uploads/profiles", // destination folder filename: (req, file, cb) => cb(null, getFileName(file)), }), }); const getFileName = (file) => { filename += "." + file.originalname.substring( file.originalname.lastIndexOf(".") + 1, file.originalname.length ); return filename; }; const apiRoute = nextConnect({ onError(error, req, res) { res .status(501) .json({ error: `Sorry something Happened! ${error.message}` }); }, onNoMatch(req, res) { res.status(405).json({ error: `Method '${req.method}' Not Allowed` }); }, }); apiRoute.use(upload.array("file")); // attribute name you are sending the file by apiRoute.post((req, res) => { res.status(200).json({ data: `/uploads/profiles/${filename}` }); // response }); export default apiRoute; export const config = { api: { bodyParser: false, // Disallow body parsing, consume as stream }, };
about 4 years ago · Juan Pablo Isaza Denunciar
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