본문 바로가기

Node.js/Package

2. multer 패키지

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