White Whale Studio

[Node.js] Upload Files 본문

IT Engineering/MEAN Stack

[Node.js] Upload Files

glorymind 2018. 8. 31. 10:35
반응형

이번에는 파일 업로드를 해볼겁니다.

웹 사이트에서 파일을 첨부하거나 해서 업로드 할때 주로 쓰이지요.


Formidable 모듈을 사용하는데 Formidable의 사전적 의미는 가공할, 어마어마한 무시무시한이라는 뜻이라네요.

얼마나 무시무시한지 한번 봅시다.


우선 npm으로 모듈을 설치합니다.

커맨드 창에서 npm install formidable 을 입력해서 설치하고


var fomidable = require('formidable'); 로 include하여 사용합니다.


fileUpload.js 파일을 하나 만들고 다음과 같이 타이핑 해봅니다.

주의 하실점은 저장될 경로를 잘 맞춰주어야 합니다. 맞지 않는 경우 에러가 나서 찾느라 고생합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var http = require('http');
var formidable = require('formidable');
var fs = require('fs');
 
http.createServer(function (req, res) {
  if (req.url == '/fileupload') {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      var oldpath = files.filetoupload.path;
      var newpath = 'C:/Temp/' + files.filetoupload.name;
      fs.rename(oldpath, newpath, function (err) {
        if (err) throw err;
        res.write('File uploaded and moved!');
        res.end();
      });
 });
  } else {
    res.writeHead(200, {'Content-Type''text/html'});
    res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
    res.write('<input type="file" name="filetoupload"><br>');
    res.write('<input type="submit">');
    res.write('</form>');
    return res.end();
  }
}).listen(8989);
cs



실행해보면 위와 같이 파일을 선택는 버튼과 제출 버튼이 있습니다.


파일 선택 후 제출을 하게 되면 지정한 경로로 파일이 복사가 되며(운영환경에서는 업로드된 파일이 해당 경로로 복사가 되겠죠)

화면에는 미리 지정한 File uploaded and moved! 가 표시됩니다.



반응형

'IT Engineering > MEAN Stack' 카테고리의 다른 글

[Node.js] API 만들어보기 - 1  (0) 2018.09.07
[Node.js] Sqlite3  (0) 2018.09.07
[Node.js] Events  (0) 2018.08.30
[Node.js] NPM : Node Package Manager  (0) 2018.08.30
[Node.js] URL Module  (0) 2018.08.30
Comments