multer
2.5.0 · 22 Oct 2026MIT30.7M / weekRepositoryHomepagenpmAtom feed
Where each line stands
Plan an upgrade- 2.x2.5.0Safe from 2.5.0Latest line
- 1.x and older1.4.425 open advisories, worst high · last release Dec 2021, no longer updatedTo 2.5.0
Latest releases
All 41 releases- 2.x · latest line
2.5.0
22 Oct 2026- security
Don't add a failed upload to the abort cleanup list
Allow a field value exactly at the fieldSize limit
Important: Security
- security
What's Changed
Don't add a failed upload to the abort cleanup list
Allow a field value exactly at the fieldSize limit
2.4.0
14 Sep 2026- security
Feat. improve wording for LIMIT_UNEXPECTED_FILE error code
Add filename to file errors
Highlights
multer finally supports Google Cloud Functions and Firebase 🎉
These platforms read the request body before your code runs, so multer's classic
req.pipe(busboy)received nothing: emptyreq.body, emptyreq.files, and nearly a decade of duplicated issues.The new
streamHandleroption closes that gap: you decide how the body reaches the parser, so the pre-readrawBodyjust works (see image).const multer = require('multer') const upload = multer({ storage: multer.memoryStorage(), streamHandler: (req, busboy) => { // Cloud Functions / Firebase expose the pre-read body here if (req.rawBody) busboy.end(req.rawBody) else req.pipe(busboy) } }) app.post('/upload', upload.single('file'), (req, res) => { res.json({ name: req.file.originalname, size: req.file.size }) })This landed thanks to community PRs going back to 2017; their authors are credited as co-authors in the release.
Important: Security
- security
What's Changed
Feat. improve wording for LIMIT_UNEXPECTED_FILE error code
Add filename to file errors
Reject non-integer fileSize limits
Allow exactly limits.parts parts
Do not consume maxCount for files skipped by fileFilter
Validate all limits at construction time
Accept a function for limits
Add flush option to disk storage to fsync files before completion
Expose busboy defCharset, highWaterMark and fileHwm options
Wait for the flush descriptor before unlinking on aborted uploads
Reserve the maxCount slot before yielding to an async fileFilter
Add streamHandler option to feed busboy from pre-consumed bodies
Decode escaped field names, not just filenames
Report the decoded filename on LIMIT_FILE_SIZE
Allow diskStorage without options
2.3.0
28 Aug 2026- security
- security
- security
Important
- security
- security
- security
- security
What's Changed
Update busboy link pointing to nonexistent section
Update outdated links to Express error handling guide
Normalize package.json
Fallback to error code when no message mapping exists
Prevent process crash when fileFilter calls its callback more than once
Preserve async hooks context in supported environments
Allow files at exact fileSize limit
Decode WHATWG-escaped characters in file originalname
Update 'README-zh-cn.md' up to now
Add an opt-in fieldArrayIndexLimit
Dependency tracking · free for 3 projects
Know when your own dependencies move
multer had 11 security advisories in the last 12 months. inlinr emails you the day one touches a project of yours, with the version that fixes it.
Advisories reach you
An email when a critical or high advisory affects a project, before the next install.
Upgrades checked first
Peer ranges, Node, ESM-only and types changes read before you bump.
Only what matters
Majors and breaking notes stay; patches and sibling bumps fold into one line.
Registry facts last checked 4 Nov 2026. Releases and advisories last read 4 Nov 2026.