const multer = require("multer");
//저장경로 설정 및 이름설정
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "./images");
},
filename: function (req, file, cb) {
cb(null, file.originalname);
},
});
//파일형식검사 (jpeg, jpg, png, gif 허용)
const fileFilter = (req, file, cb) => {
if (file.mimetype === "image/jpeg" || file.mimetype === "image/jpg" ===
file.mimetype === "image/png" || file.mimetype === "image/gif" ) {
cb(null, true);
} else {
cb(new Error("이미지 파일 형식이 맞지 않습니다"), false);
}
};
//미들웨어
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024 * 5,
},
fileFilter: fileFilter,
});
//여러장일시 미들웨어(detail_image라는 필드네임은 10장이 최대로 설정)
const images = upload.fields([{ name: 'thumbnail' }, { name: 'detail_image', maxCount: 10 }])
//포스트 api(1장일 경우)
router.post('/add', upload.single(image), async (req, res) => {
//파일저장경로
const image = req.file.path
})
//포스트 api(여러장 겨우)
router.post('/add', imaages, async (req, res) => {
//thumbail 파일저장경로
const thumbnail = req.files['thumbnail'][0].path
//detail_images라는 빈 Array
const detail_images = [];
//detail_images라는 Array에 detail_image들의 저장 경로 입력
req.files['detail_image'].forEach( image => detail_images.push(image.path) )
})