html
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="images" accept="image/*" multiple required>
<button type="submit">Upload</button>
</form>
node js
import express from 'express';
import { initializeApp } from 'firebase/app';
import { getStorage, ref, uploadBytes, getDownloadURL } from 'firebase/storage';
import multer from 'multer';
const firebaseConfig = {
};
const app = express();
const storage = getStorage(initializeApp(firebaseConfig));
const upload = multer({ storage: multer.memoryStorage() });
app.post('/upload', upload.array('images'), async (req, res) => {
const files = req.files;
if (!files || files.length === 0) {
res.status(400).send('No files uploaded.');
return;
}
try {
const uploadPromises = files.map(async (file) => {
const filename = file.originalname;
const storageRef = ref(storage, filename);
await uploadBytes(storageRef, file.buffer);
const downloadURL = await getDownloadURL(storageRef);
return downloadURL;
});
const downloadURLs = await Promise.all(uploadPromises);
res.status(200).send(downloadURLs);
} catch (error) {
console.error('Error uploading files:', error);
res.status(500).send('Error uploading files.');
}
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});