2013-05-23 1 views
0

강력한 모듈을 사용하여 파일 업로드를 수행하려고합니다. 나는 그들의 예를 따랐고 잘 작동한다. 익스프레스 모듈을 사용할 때도 똑같이 작동 할 때 작동하지 않는다. 로그가 POST/업로드 상태를 유지 한 후에 거기에 매달 렸습니다.Express 프레임 워크를 사용할 때 'node-formidable'파일 업로드 문제가 발생했습니다.

이것은 샘플 링크입니다. https://github.com/felixge/node-formidable/blob/master/example/upload.js

'uploadDir'값과 관련이 있다고 생각합니다. 표현할 directory lookup으로 현재 디렉토리 ('/')를 지정했으며 현재 업로드 된 파일이 노드가 실행되는 현재 디렉토리의 files 폴더에 있다고 예상했습니다. Donno 어디서 붙어 있나요? 어떤 도움을 주셔서 감사합니다 ... !! 감사,

var formidable = require('formidable'), 
http = require('http'), 
util = require('util'); 
connectTimeout = require('connect-timeout'); 
mongoose = require('mongoose'); 
express = require('express'); 
app = express(); 
server = http.createServer(app); 

server.listen(4000); 

app.configure(function(){ 
app.set('views', __dirname + '/views'); 
app.use(express.favicon()); 
app.use(connectTimeout({ time: 20000 })); 
app.use(express.methodOverride()); 
app.use(express.bodyParser()); 
app.use(express.static(__dirname + '/')); 
}); 

app.get('/',function(req, res) { 

res.writeHead(200, {'content-type': 'text/html'}); 
res.end(
'<form action="/upload" enctype="multipart/form-data" method="post">'+ 
'<input type="text" name="title"><br>'+ 
'<input type="file" name="upload" multiple="multiple"><br>'+ 
'<input type="submit" value="Upload">'+ 
'</form>' 
); 
}); 

app.post('/upload', function(req,res) { 

console.log(" ########## POST /uplaod ####### "+ req.files+" :: "+__dirname); 
var form = new formidable.IncomingForm(), 
files = [], 
fields = []; 
form.uploadDir = __dirname+"/files"; 

form.on('field', function(field, value) { 
    fields.push([field, value]); 
}) 
form.on('file', function(field, file) { 
    console.log(file.name); 
    files.push([field, file]); 
}) 
form.on('end', function() { 
    console.log('done'); 
    res.redirect('/forms'); 
}); 
form.parse(req); 

}); 
+0

이 프로젝트에서 README를 읽을 때 해결책을 찾았습니다. https://github.com/therealplato/express-formidable-demo. 나는'express.bodyParser()'가 작동하도록하기 위해 그것을 주석 처리해야한다. – Mani

답변

1

당신은 express.bodyParser()해야 작동합니다. ;)