So ändern Sie den Upload-Pfad, wenn Sie formidable mit express in node.js verwenden

Eigentlich stoße ich auf zwei Probleme

Erstens, wie man den Upload-Pfad ändert

meine ordnerstruktur sieht so aus:

|__app.js
|__upload

Mein Node-Code ist in app.js und bootet von dort. Wenn ich das Bild in den Upload-Ordner hochladen möchte, ändere ich den Pfad:

var form = new formidable.IncomingForm;
form.uploadDir = "./upload";

Es scheint, dass der Upload erfolgreich war, aber ich weiß nicht, wohin die Datei verschoben wird, und nicht im Upload-Ordner.

Also, was ist der richtige Pfadname?

Das zweite Problem ist

Wenn ich es nicht ändere, könnte es korrekt auf das hochladenC:/Users/ADMINI~1/AppData/Local/Temp aber es wird ohne das foramt umbenannt,

Wie kann ich das Upload-Format erhalten und selbst umbenennen?

Das dritte Problem ist

Ich binde auch den Handler an denprocess Ereignis, wie

form.on('progress', function(bytesReceived, bytesExpected) {
    console.log(bytesReceived + ' ' + bytesExpected);
});

aber es scheint nicht zu funktionieren, wenn beim hochladen nichts protokolliert wird. Warum fehlt mir etwas?

Hier ist mein gesamter Code:

app.post('/upload', function (req, res) {
    var form = new formidable.IncomingForm;
    // form.uploadDir = "./upload";
    console.log(form.uploadDir);

    form.parse(req, function(err, fields, files){
      if (err) return res.end('You found error');
      console.log(files.image);
    });

    form.on('progress', function(bytesReceived, bytesExpected) {
        console.log(bytesReceived + ' ' + bytesExpected);
    });

    form.on('error', function(err) {
        res.writeHead(200, {'content-type': 'text/plain'});
        res.end('error:\n\n'+util.inspect(err));
    });

    // res.end('Done');
    res.send("well done");

    return;
})

Antworten auf die Frage(1)

Ihre Antwort auf die Frage