• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

188
Views
How do I upload multiple files to Firebase from React and get the file name?

I'm trying to set up React with Firebase. Currently i have an input form, where i can upload pictures to my firebase. My issue is that i can't;

  1. Upload more than one file (the new overwrites the old one)
  2. I can't get the files name.
import { getStorage, ref, uploadBytes, } from "firebase/storage";
import { app } from './base'

function SubmitApp (){


    const onChange = (e) => {
        const file = e.target.files[0]
        const storage = getStorage(app)
        const storageRef = ref(storage, 'images') // this names the files images, but can't delete
        uploadBytes(storageRef, file).then(() => {
            console.log('Uploaded to Firebase')
        })
    }
        

    return (
        <form onChange={onChange} >
             <input  type='file' name='file' />
             <button>Submit</button>
        </form>

       
    )
}

export default SubmitApp
almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

To upload all files:

const onChange = (e) => {
  const storage = getStorage(app)
  const storageRef = ref(storage, 'images')
  const now = Date.now()
  e.target.files.forEach((file, index) => {
    uploadBytes(storageRef.child("file_"+now+"_"+index), file).then(() => {
      console.log('Uploaded to Firebase')
    })
  })
}

Here we loop over all files the user selected, and name them after the current time and their index on the server.

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error