Multer Any Method: Accept All File Uploads

Multer provides upload.any() to handle file uploads from any field name. It is flexible but should be used carefully.

What is upload.any() in Multer?

upload.any() is a Multer middleware that:

Example:

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

app.post("/upload", upload.any(), (req, res) => {
  res.send("Files uploaded");
});

When should I use upload.any()?

Use upload.any() when:

⚠️ Avoid using it for strict APIs where field validation is required.

How to access files uploaded using any()?

All uploaded files are available in:

req.files

Example:

app.post("/upload", upload.any(), (req, res) => {
  console.log(req.files);

  res.json({
    message: "Files received",
    files: req.files,
  });
});

Each file object includes metadata like:

What are the risks of using upload.any()?

Using upload.any() can introduce risks:

Best practices:

How does Multer store files in this method?

Storage depends on your configuration:

Disk storage:

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

Custom storage:

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

const upload = multer({ storage });

Complete Example

const express = require("express");
const multer = require("multer");

const app = express();

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

app.post("/upload", upload.any(), (req, res) => {
  res.json({
    message: "Files uploaded successfully",
    files: req.files,
  });
});

app.listen(3000, () => {
  console.log("Server running on port 3000");
});

Key Takeaways