multer는 파일, 이미지 업로드, 필터링 등의 폼 전송 데이터를 처리하기 위해 사용된다.
npm install --save dotenv
let multer = require('multer');
var storage = multer.diskStorage({
destination : function(req, file, cb){
cb(null, './public/images') // 출력 경로 정의
},
filename : function(req, file, cb){
cb(null, file.originalname) // 출력 파일명 정의
}
var upload = multer({storage : storage
,
fileFilter : function(req, file, cb){
var ext = path.extname(file.originalname);
if(ext !== '.png' && ext !== '.jpg' && ext !== '.jpeg'){
return cb(new Error('PNG, JPEG만 허용됩니다.'))
}
cb(null, true);
},
limits:{
fileSize: 2048 * 2048
}});
app.post ( '/upload', upload.array("imagefile", 5), function(req, res){
res.send('업로드 완료');
} )
Multer 는 Input, Form 태그와 함께 사용될 수 있으며, input 태그의 name 등을 받아 처리 할 수 있다.
Multipart/form-data, 인코딩 타입을 가지며, 단일 파일 혹은 하나 이상의 파일을 저장하도록 할 수 있다.
객체
destnation : 파일의 위치
fileFilter : 허용되는 파일등의 필터를 설정
limits : 업로드할 데이터의 최대량 ( kb )
속성
single(fieldname) : 하나의 파일을 처리
array(fieldname(maxcount]) : 최대 maxcount 수 만큼의 파일을 배열 형태로 처리한다.
fileds(fields) : 구분자 기준 여러 파일을 배열 형태로 처리한다.
DiskStorage / MemoryStorage
DiskStorage 는 디스크 내 파일을 저장하기 위한 기능을 제공한다.
Destination : 디렉토리
filename : 저장할 파일명 ( 확장자 별도 )
MemoryStorage 는 버퍼 객체로 메모리에 저장하기 위한 기능을 제공한다.
파일 데이터는 req.file.buffer에 저장되며, 버퍼 타입의 경우 플랫폼 교환시 문자열 변환 작업이 필요하다.
'Node.js > Package' 카테고리의 다른 글
1. dotenv 패키지 (0) | 2021.12.12 |
---|