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

273
Visualizações
¿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 Respostas
Responde à pergunta

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 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