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
Posted by 창업닉군
,