node.js로 파일을 업로드 하려면 multer 라는 모듈을 다운로드 받아 사용하면 됩니다.
1. multer 설치.
$ npm i multer
2. multer 로드.
multer를 아래와 같이 모듈 로드해 줍니다. path는 파일 경로를 만들어 줍니다.
var multer = require('multer');
var path = require('path');
3. multer 초기화
아래 코드를 참고해 multer를 생성합니다. 별 내용은 없고, 저장 위치와, 파일명을 지정하는 메소드, 옵션 정도 설정해 초기화 합니다.
const uploader = multer({
// 저장 위치 설정.
storage: multer.diskStorage({
destination(req, file, cb){
cb(null, "upload/");
},
filename( req, file, cb )
{
const ext = path.extname( file.originalname );
cb( null, path.basename( file.originalname, ext ) + new Date().valueOf() + ext );
}
})
// 저장 용량설정.
, limits: { filesize: 5 * 1024 * 1024 }
});
4. 업로드 라우터 설정.
위에서 설정했던 multer를 라우터에 설정하는 것 인데, single('img')는 html에서 업로드하는 필드중 img 가 파일을 업로드하는 것 임을 알려 줍니다. single은 하나의 파일만 업로드했음을 설정하는 메소드 입니다.
app.post( '/img', uploader.single('img'), function( req, res, next ){
// 파일 정보.
console.log( req.file );
// POST의 다른 정보.
res.json( req.body );
});
5. 업로드하는 파일 폼의 html은 다음과 같습니다.
<html>
<head>
<title>이미지 업로드</title>
</head>
<body>
<form action="/img" method="POST" enctype="multipart/form-data" name="file_F" id="file_F" >
<input type="file" name="img" />
<input type="text" name="kkon" />
<input type="submit" value="보내기" />
</form>
</body>
</html>
'Node.js' 카테고리의 다른 글
node js 파일 업로드 multer (field) (0) | 2019.06.01 |
---|---|
aws node js SMS 보내기 (0) | 2019.05.26 |
node.js nodemailer gmail (0) | 2019.05.24 |
node js OAuth 2.0 Login (0) | 2019.04.16 |
node.js를 이용한 iOS Push 구현하기 (requests to APNs) (0) | 2019.04.14 |