Nodejs
Upload Files With Multer
#nodejs
- Set up boilerplate nodeJS with ejs and install
Multer. - home.ejs
<form action="/profile" method="post" enctype="multipart/form-data">
<input type="file" name="profileImage" />
<button type="submit">Upload</button>
</form>enctypenecessary for file upload- server.js
const express = require("express");
const app = express();
const multer = require("multer");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
// callback returns (error, where to store uploaded file)
return cb(null, "./uploads");
},
filename: function (req, file, cb) {
// configure unique file name for no overiding
return cb(null, Date.now() + "-" + file.originalname);
},
});
// upload instance
const upload = multer({ storage });
app.set("view engine", "ejs");
app.use(express.urlencoded({ extended: false }));
// main router // Upload single for a single uploaded file
app.post("/upload", upload.single("profileImage"), (req, res) => {
console.log(req.file);
res.redirect("/");
});
app.get("/", (req, res) => {
res.render("home.ejs");
});
app.listen(3000);- Use disk storage to actually be able to view uploaded file on server
- Need to create uploads beforehand