使用Express框架时,'node-formidable'文件上传问题

时间:2013-05-23 08:39:34

标签: node.js formidable

我正在尝试使用强大的模块执行文件上传。我按照他们的例子运行良好,当我使用快递模块做同样的事情时,我不会让它工作。在我保存在POST /上传的日志之后,它挂在那里。

这是样本的链接。 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);

});

1 个答案:

答案 0 :(得分:1)

您需要发表评论express.bodyParser()才能使其发挥作用。 ;)

相关问题