我知道有人问过类似的问题:
我使用强大的快递。我发现在'file'事件被触发时没有触发'fileBegin'事件。
以下是明确的定义:
var app = express();
// all environments
process.env.port = 3001;
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
定义中是否缺少某些内容?提前致谢
更新:上传处理程序:
function parseFormData(req,res,uploadDir){
var form = new formidable.IncomingForm();
var files = [];
try {
form.uploadDir = uploadDir;
form.parse(req, function() {
});
var logMsg;
form
.on('file',function(name, file) {
console.log('file found');
logMsg = util.format('Filename :%s\nFilesize: %s\nFilepath %s',file.name,file.size,file.path);
console.log(logMsg);
files.push(file);
})
.on('fileBegin',function(name, file) {
console.log('fileBegin file.name: '+file.name);
var targetFolder = path.dirname(file.path);
file.path = path.join(targetFolder,file.name);
console.log('new path: '+file.path);
})
.on('end', function() {
console.log(util.inspect(files));
res.writeHead(200);
res.end('done');
console.log('end');
});
}
catch(error){
res.end('done');
}
}