File Uploads in Node.js

📘 Node.js 👁 53 views 📅 Nov 05, 2025
⏱ Estimated reading time: 2 min

File upload functionality allows users to send files (images, documents, videos, etc.) from a client to a Node.js server.
It is commonly used in profile images, documents, forms, and media applications.


1. How File Upload Works

Client selects fileHTTP request (multipart/form-data) ↓ Node.js server processes file ↓ File stored locally or in cloud

2. Required Middleware

Node.js does not handle file uploads by default.
The most commonly used middleware is Multer.


3. Installing Multer

npm install multer

4. Basic File Upload Setup (Express + Multer)

Import and Configure Multer

const multer = require('multer'); const upload = multer({ dest: 'uploads/' });

Single File Upload Route

app.post('/upload', upload.single('file'), (req, res) => { res.send('File uploaded successfully'); });

'file' must match the form field name


5. Uploading Multiple Files

app.post('/uploads', upload.array('files', 5), (req, res) => { res.send('Multiple files uploaded'); });

6. Custom Storage Configuration

const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, 'uploads/'); }, filename: (req, file, cb) => { cb(null, Date.now() + '-' + file.originalname); } }); const upload = multer({ storage });

7. File Type Validation

const upload = multer({ fileFilter: (req, file, cb) => { if (file.mimetype.startsWith('image/')) { cb(null, true); } else { cb(new Error('Only images allowed')); } } });

8. File Size Limit

const upload = multer({ limits: { fileSize: 1024 * 1024 } // 1MB });

9. Accessing Uploaded File Data

console.log(req.file); // single file console.log(req.files); // multiple files

10. Error Handling for Uploads

app.post('/upload', upload.single('file'), (err, req, res, next) => { if (err) { res.status(400).send(err.message); } });

11. Storing Files in Cloud (Concept)

Instead of local storage, files can be stored in:

  • AWS S3

  • Cloudinary

  • Google Cloud Storage

✔ Better scalability and security


12. Security Best Practices

  • Validate file type and size

  • Rename files to avoid conflicts

  • Store uploads outside public folders

  • Scan files for malware

  • Restrict upload access


13. Common Mistakes

❌ Allowing any file type
❌ Not limiting file size
❌ Exposing upload directory publicly
❌ Ignoring error handling


14. Summary

  • File uploads require middleware like Multer

  • Supports single and multiple uploads

  • Custom storage and validation improve safety

  • Essential for modern web applications


🔒 Some advanced sections are available for Registered Members
Register Now

Share this Post


← Back to Tutorials

Popular Competitive Exam Quizzes