'upload'에 해당되는 글 2건

  1. 2019.06.01 node js 파일 업로드 multer (field)
  2. 2019.05.24 node js 파일 업로드 multer

예전 multer를 이용한 파일 업로드 구현을 블로그에 게시했는데, 여러개의 필드도 업로드할 일이 있어, 사용해 보는 김에, 블로그에 남깁니다. 예전 페이지에 수정을 할 까도 생각해 봤지만, 따로 두는 것이 좋을 것 같아. (목적 별로 찾을 수 있도록) 블로그를 하나 더 남깁니다.

node js에 express 를 설치하고, multer를 이용해 업로드 처리를 하였습니다.

 

1. multer 설치.

$ npm i multer

 

2. multer 로드.

multer등 필요한 모듈을 아래와 같이 인스턴스화 해 줍니다.

var multer = require('multer');
var path = require('path');

 

 

3. multer를 초기화 합니다.

아래 코드를 참고해 multer를 생성합니다. 별 내용은 없고, 파일명을 지정하는 메소드등, 옵션 정도 설정해 초기화 합니다.
여기서는 업로드 폴더를 upload로 지정했으므로, express 서버를 시작하는 소스가 담긴 폴더에 upload 폴더를 생성해야 합니다.
대체로 "/upload" 폴더가 됩니다.

var multerNo = 1;
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 ) + "_" + multerNo++ + "_" + new Date().valueOf() + ext )

    }

  })


  // 저장 용량설정.
  , limit: { filesize: 5 * 1024 * 1024 }

});

 

 

4. 업로드 라우터 설정.

app.post( '/img', uploader.fields( [{name:"img_0"}, {name:"img_1"}, {name:"img_2"}, {name:"img_3"}, {name:"img_4"}] ), function( req, res, next ) {

  res.json( req.files );
  console.log( req.files );

});

 

 

5. 업로드하는 파일 폼의 html은 다음과 같습니다.

<html>

    <head>
        <title>파일 업로드 테스트를 합니다.</title>
    </head>

    <body>

        <form action="/img" method="POST" enctype="multipart/form-data">

            이미지 0 : <input type="file" name="img_0" /><br>
            이미지 1 : <input type="file" name="img_1" /><br>
            이미지 2 : <input type="file" name="img_2" /><br>
            이미지 3 : <input type="file" name="img_3" /><br>
            이미지 4 : <input type="file" name="img_4" /><br>


            <input type="submit" value="보내기" />


        </form>

    </body>

</html>

 

 

 

 

 

 

 

 

 

 

'Node.js' 카테고리의 다른 글

node.js ws 를 이용한 웹소켓 구현.  (6) 2019.06.02
Express-generator로 express 간단히 셋팅하기.  (0) 2019.06.02
aws node js SMS 보내기  (0) 2019.05.26
node js 파일 업로드 multer  (0) 2019.05.24
node.js nodemailer gmail  (0) 2019.05.24
Posted by 창업닉군
,

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