multer

multer

  • body-parser로는 요청 본문을 해석할 수 없어서 multer라는 패키지가 필요.

  • 이미지/동영상 파일 업로드를 도와줌

사용방법

const multer = require('multer');
const fs = require('fs');

try {
  fs.readdirSync('uploads');
} catch (error) {
  console.error('uploads 폴더가 없어 uploads 폴더를 생성합니다.');
  fs.mkdirSync('uploads');
}

const upload = multer({
  storage: multer.diskStorage({
    destination(req, file, done) {
      done(null, 'uploads/'); // uploads/ 폴더에 저장하겠다
    },
    filename(req, file, done) {
      const ext = path.extname(file.originalname);
      done(null, path.basename(file.originalname, ext) + Date.now() + ext);
    },
  }),
  limits: { fileSize: 5 * 1024 * 1024 }, // 5MB
});

app.get('/upload', (req, res) => {
  res.sendFile(path.join(__dirname, 'multipart.html'));
});

app.post('/upload', upload.single('image'), (req, res) => {
  console.log(req.file);
  res.send('ok');
});

single image

전체코드

client

multer.html

backend

app.js

multiple images

multer.html

app.js

  • 주요 변경점

    • upload.sinlge**upload.array**

    • req.file**req.files**

multiple images 2

multer.html

app.js

Last updated