2013-05-23 2 views
0

Я пытаюсь выполнить загрузку файлов с помощью грозного модуля. Я следовал их примеру, и он работает хорошо, когда я делаю то же самое с помощью экспресс-модуля, я не получаю его работу. Он висел там, после журнала, который я хранил в POST/upload.Проблемы с загрузкой файлов «node-formidable» при использовании Express framework

Это ссылка на образец. https://github.com/felixge/node-formidable/blob/master/example/upload.js

Я думаю, что это как-то связано с значением 'uploadDir'. Я дал текущую директорию ('/') как directory lookup, чтобы выразить, и я ожидал, что файлы, загруженные, будут присутствовать в папке files в текущем каталоге, откуда запускается узел. Донно, где он застревает? любая помощь приветствуется ... !! Спасибо,

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(), чтобы заставить его работать. ;)

Смежные вопросы