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

270
Vistas
¿Cómo puedo cargar varias imágenes en el almacenamiento en la nube de firebase v9 usando reactjs?

Soy nuevo en aprender a reaccionar js con el almacenamiento de base de fuego. Estoy tratando de cargar varias imágenes en firebase v9. He subido con éxito una sola imagen, pero no puedo hacer varias imágenes. He visto tutoriales pero esos no están actualizados.

Además, después de cargar todas las imágenes, quiero todas las URL en una matriz porque necesito enviarlas también en el backend.

 const [progress, setProgress] = useState(0); const [selectedImages, setSelectedImages] = useState([]); const onSelectFileUpload = (e) => { e.preventDefault(); const file = e.target[0].files[0]; uploadFiles(file); }; const uploadFiles = (file) => { // if (!file) return; const sotrageRef = ref(storage, `files/${file.name}`); const uploadTask = uploadBytesResumable(sotrageRef, file); uploadTask.on( "state_changed", (snapshot) => { const prog = Math.round( (snapshot.bytesTransferred / snapshot.totalBytes) * 100 ); setProgress(prog); }, (error) => console.log(error), () => { getDownloadURL(uploadTask.snapshot.ref).then((downloadURL) => { console.log("File available at", downloadURL); }); } ); };

Código HTML:

 <form onSubmit={onSelectFileUpload}> <div className="shadow sm:rounded-md sm:overflow-hidden bg-white px-4 py-5 bg-white space-y-6 sm:p-6"> <input type="file" name="images" multiple accept="image/png , image/jpeg, image/webp" /> <div className=" py-3 text-right "> <button type="submit" className="inline-flex justify-center py-2 px-4 border border-transparent drop-shadow-md text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">Publish</button> </div> </div> </form>

Alguien me puede orientar de como puedo solucionarlo?

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

0

Resuelto

 const uploadFiles = (files) => { const promises = [] files.map((file) => { console.log('loop'); const sotrageRef = ref(storage, `files/${file.name}`); const uploadTask = uploadBytesResumable(sotrageRef, file); promises.push(uploadTask) uploadTask.on( "state_changed", (snapshot) => { const prog = Math.round( (snapshot.bytesTransferred / snapshot.totalBytes) * 100 ); setProgress(prog); }, (error) => console.log(error), async () => { await getDownloadURL(uploadTask.snapshot.ref).then((downloadURLs) => { setURLs(prevState => [...prevState, downloadURLs]) console.log("File available at", downloadURLs); }); } ); }) Promise.all(promises) .then(() => alert('All images uploaded')) .then(err => console.log(err)) }; console.log(selectedImages); console.log(URLs); const handleSubmit = () => { uploadFiles(images); }
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