Introduction
Multer helps your Express app handle file uploads easily by processing files sent from users.
Jump into concepts and practice - no test required
import multer from 'multer'; const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('fileFieldName'), (req, res) => { // req.file contains the uploaded file info res.send('File uploaded!'); });
upload.single('fieldName') for one file, or upload.array('fieldName', maxCount) for multiple files.dest option sets the folder where files are saved temporarily.const upload = multer({ dest: 'uploads/' });
app.post('/profile', upload.single('avatar'), (req, res) => {
res.send('Avatar uploaded');
});const upload = multer({ dest: 'uploads/' });
app.post('/photos', upload.array('photos', 3), (req, res) => {
res.send('Multiple photos uploaded');
});const storage = multer.diskStorage({
destination: (req, file, cb) => cb(null, 'custom_folder/'),
filename: (req, file, cb) => cb(null, Date.now() + '-' + file.originalname)
});
const upload = multer({ storage });import express from 'express'; import multer from 'multer'; const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { if (!req.file) { return res.status(400).send('No file uploaded.'); } res.send(`File ${req.file.originalname} uploaded successfully.`); }); app.listen(3000, () => { console.log('Server running on http://localhost:3000'); });
upload.single() or upload.array() to specify how many files to accept.multer middleware in an Express application?multer().upload.single('fieldname'). Here, 'avatar' is the field name.const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
app.post('/profile', upload.single('photo'), (req, res) => {
res.send(req.file.path);
});
What will be the response when a user uploads a file named 'pic.jpg' in the 'photo' field?const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
console.log(req.files);
res.send('Upload complete');
});
What is the problem with this code?destination as string or function(req, file, cb); filename must be function(req, file, cb).cb(null, Date.now() + '-' + file.originalname).const storage = multer.diskStorage({ destination: 'images', filename: (req, file, cb) => { cb(null, Date.now() + '-' + file.originalname); } }); const upload = multer({ storage }); uses valid string destination and correct filename.