multer
폼 데이터 파일 => req.file(s),
폼 데이터 일반 값 => req.body
const multer = require("multer");
const path = require("path");
const upload = multer({
storage: multer.diskStorage({
destination(req, file, done) {
// null은 서버에러, 뒤에는 성공 시 uploads폴더에 저장하겠다. => S3에도 가능
done(null, "uploads");
},
filename(req, file, done) {
const ext = path.extname(file.originalname); // 확장자 추출
const basename = path.basename(file.originalname, ext);
// 제로초.png, ext === .png, basename === 제로초
done(null, basename + new Date().valueOf() + ext);
// 파일명이 같으면 덮어씌어지기 때문에 시간을 추가해줌
},
}),
limits: { fileSize: 20 * 1024 * 1024 },
});
<input type="file"
multiple
hidden
ref={imageInput}
onChange={onChangeImages}/>