You can upload multiple files using multer in Node.js and return their filenames. Here's how:
1. Setup Express & Multer
Install dependencies:
npm install express multer cors
2. Configure the Server
Set up an Express server with multer:
const express = require('express');
const multer = require('multer');
const cors = require('cors');
const app = express();
app.use(cors());
const storage = multer.diskStorage({
destination: './uploads/',
filename: (req, file, cb) => {
cb(null, Date.now() + '-' + file.originalname);
}
});
const upload = multer({ storage: storage });
app.post('/upload', upload.array('files', 10), (req, res) => {
const filenames = req.files.map(file => file.filename);
res.json({ message: 'Files uploaded successfully', filenames });
});
app.listen(3000, () => console.log('Server running on port 3000'));
3. Frontend Fetch Request
Send multiple files using fetch:
<input type="file" id="fileInput" multiple>
<button onclick="uploadFiles()">Upload</button>
<script>
function uploadFiles() {
const fileInput = document.getElementById('fileInput');
const files = fileInput.files;
const formData = new FormData();
for (let file of files) {
formData.append('files', file);
}
fetch('http://localhost:3000/upload', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log('Uploaded Files:', data.filenames))
.catch(error => console.error('Error:', error));
}
</script>
4. Running the Project
Start your server (node server.js).
Open the HTML file in your browser.
Select multiple files and click "Upload."
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.