Node.js

(Node.js) multer

JJeongHyun 2023. 1. 18. 14:58
반응형

multer 라이브러리

  • express 서버에서 파일을 업로드하기 위한 미들웨어이다
  • HTML에서 form데이터를 처리하여 클라이언트에서 서버로 파일을 업로드할 수 있다
  • multer.diskStorage({})
    • POST 방식으로 전송된 파일의 저장경로와 파일명 등 처리하기 위해서 diskStorage 엔진이 필요하다
    • multer.diskStorage({ destination }) : 파일 등을 저장할 경로 설정
    • multer.diskStorage({ filename }) : 파일 이름을 설정
const multer = require("multer");

const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "./upload/");
  },
  filename: (req, file, cb) => {
    cb(null, file.originalname);
  },
});
const uploader = multer({ storage: storage });

 

업로드

 //multer로 한개의 파일만 업로드 할 때
 router.post("/upload", uploader.single("img"), (req, res) => {
   console.log(req.file);
   console.log("파일 업로드");
   console.log(req.body);
   res.send("post ok! ");
 });
 //multer로 같은 name input객체의 파일을 업로드할 때
 router.post("/upload", uploader.array("img" ,2), (req, res) => {
   console.log(req.files);
   console.log("파일 업로드");
   console.log(req.body);
   res.send("post ok! ");
 });
 // multer로 서로 다른 name input 객체의 파일을 업로드할 때
  router.post("/upload", uploader.fields([{name : "img"}, {name : "file"}]), (req, res) => {
   console.log(req.file[0]);
   console.log(req.img[0]);
   console.log("파일 업로드");
   res.send("post ok! ");
 });