FileUpload

body-parser는 파일을 업로드하는 경우에 json과 urlencoded 양식 제출만 처리한다. multi-part를 처리하기 위해서 connect-busboy 모듈을 사용하였다.

주의해야 할 점은 이미지를 저장하고자 하는 폴더가 경로에 있어야한다.

var express = require('express');
var fs = require('fs');
// var bodyParser = require('body-parser');
var busboy = require('connect-busboy');
var app = express();
 
// app.use(bodyParser.urlencoded({extended: false}));
app.use(busboy());
 
app.listen(3303, function() {
  console.log("Server Start");
});
 
app.get('/', function(req, res) {
  fs.readFile('index.html', function(err, data) {
    res.writeHead(200, { 'Content-Type': 'text/html'});
    res.end(data, function(error) {
      console.log(error);
    })
  })
})
 
app.post('/upload', function(req, res) {
  var fstream;
  req.pipe(req.busboy);
  req.busboy.on('file', function(fieldname, file, filename) {
    console.log("Uploading: " + filename);
    fstream = fs.createWriteStream(__dirname + '/files/' + filename);
    file.pipe(fstream);
    fstream.on('close', function() {
      res.redirect('back');
    });
  });
});


'Framework > Nodejs' 카테고리의 다른 글

이메일 발송  (0) 2017.07.13
MVC model  (0) 2017.07.07
mocha  (0) 2017.07.05
미들웨어(1):cookieParser, bodyParser, limit, query  (0) 2017.04.05
connect  (0) 2017.04.04

+ Recent posts