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

534
Visualizações
Cómo cargar varias imágenes en reaccionar (nextjs)

Estoy tratando de cargar varias imágenes en React (nextjs) desde <input onChange={onChange} type='file' name='file' multiple/> Pero, ¿de qué manera es más adecuado hacerlo? Algunas horas de búsqueda en Google no me ayudaron. Este es mi enfoque (eso no funciona, de lo contrario no tendría que escribirlo):

Almacené los srcs de las imágenes usando useState hook:

 const [imgsSrc, setImgsSrc] = useState([])

Y esta es mi "entrada en el controlador de cambios":

 const onChange = (changeEvent: any) => { for (let file of changeEvent.target.files) { setTimeout(() => { const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { setImgsSrc([...imgsSrc, reader.result]) } reader.onerror = () => { console.log(reader.error)} }, 1000) } }

Mi input una vez más

 <input onChange={onChange} type='file' name='file' multiple/>

Y mi forma de tratar de mostrar imágenes al usuario.

 { imgsSrc.map((link) => { <img src={link}/> }) }

Pero no me muestra nada, así que tengo un par de preguntas a las que mis células nerviosas estarían encantadas de obtener una respuesta.

  1. porque no funciona
  2. "Guardar imágenes en una carpeta public en el directorio raíz de la aplicación" es un buen enfoque para guardar imágenes
  3. ¿Puedo almacenar las URL codificadas en base64 de forma remota y obtener cada solicitud, decodificarlas y obtener una imagen?

por favor...

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

0

Guardar imágenes en el directorio público no es un buen enfoque, debe probar aplicaciones de computación en la nube como AWS, Google o Cloudinary. pero preferiría usar Cloudinary porque puede almacenar aproximadamente 10 GB de imágenes en una cuenta gratuita y también es fácil de integrar con aplicaciones de reacción. ¿Como funciona?

1- guarde su imagen en Cloudinary a través de una solicitud API, luego Cloudinary devuelve el enlace de la imagen en respuesta.

2-guardar el enlace de la imagen dentro de la base de datos

tutorial => subir imagen cloudinary y reaccionar

about 4 years ago · Juan Pablo Isaza Relatório

0

Básicamente tienes un par de errores que impiden que tu código muestre algo:

 function App() { const [imgsSrc, setImgsSrc] = useState([]); const onChange = (e) => { for (const file of e.target.files) { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => { setImgsSrc((imgs) => [...imgs, reader.result]); }; reader.onerror = () => { console.log(reader.error); }; } }; console.log(imgsSrc, imgsSrc.length); return ( <div> <input onChange={onChange} type="file" name="file" multiple /> {imgsSrc.map((link) => ( <img src={link} /> ))} </div> ); }

Dado que el lector de archivos es asíncrono, debe decirle a React que actualice el estado usando el estado más reciente, o tendrá errores, porque setState también es asíncrono, y los comandos de bucle se agrupan y se anulan entre sí.

El hecho de que no tenga ninguna salida de imagen se debe a que no está devolviendo nada de .map .

Puede verificar la versión corregida: https://stackblitz.com/edit/react-pgtpnu?file=src%2FApp.js

No puede guardar archivos en el servidor si está usando NextJS y lo implementa en un entorno sin servidor, necesita usar un servicio en la nube, puede usar firestore para guardar cadenas base64, o incluso mejor, cargue los blobs directamente en cloudinary, a través de Las funciones sin servidor de multer middleware nextJS le permiten escribir una función de este tipo en unas pocas líneas.

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