1

この問題と同様の質問があったことは知っています。

私は express で formidable を使います。そして、「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');
    }
} 
4

0 に答える 0