multer 모듈을 사용한 file-upload

multer 모듈을 사용한 file-upload

multer 모듈을 사용한 file-upload

웹에서 파일 업로드는 두 가지 방식이 있다.

  1. application/x-www-urlencoded
  2. multipart/form-data

multer 설치

npm install multer --save

업로드 구현

1. multer 모듈을 랩핑한 upload()함수 구현
upload(req, res, function(err) {
  if(err) {
    return res.status(422).send("an Error occured");
  }
  console.log(req.file);
  return res.send("Upload completed");
});

let upload = multer({dest: 'uploads/'}).single('file');
uploads 폴더 밑에 파일이 생성되는데, 이름도 이상하고 확장자도 없어 사용할 수 없다.
따라서, dest 속성 대신 storage 속성을 사용해 upload 변수에 넣어주면 된다.
2. 파일의 저장 경로와 이름을 수정
let storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, 'uploads/');
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname);
    }
});

let upload = multer({ storage: storage }).single('file');

댓글

가장 많이 본 글