Wir möchten eine Funktionalität implementieren, um mehrere Dateien auf den ExpressJS-Server hochzuladen und alle seine eindeutigen URLs über einen ajax
-Aufruf zurückzugeben.Upload von Knotendateien mit formidable funktioniert nicht
Es folgt der Beispielcode in meinem Frontend:
var formData = new FormData();
for (var i = 0; i < nameId.length; i++) {
if($(nameId[i])[0].files[0]){
formData.append(nameId[i], $(nameId[i])[0].files[0], $(nameId[i])[0].files[0].name);
}
}
$.ajax({
url: '/upload-files',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data){
console.log('upload successful!');
console.log(data);
}
});
Und in unserem Router haben wir Schnipsel folgenden Code die Anforderung und speichern Sie die Datei zu übernehmen:
router.post('/upload-files',function(req, res, next){
var form = new formidable.IncomingForm();
form.multiples = true;
form.uploadDir = path.join(__dirname, '/uploads');
form.on('file', function(field, file) {
console.log("File incoming");
fs.rename(file.path, path.join(form.uploadDir, file.name));
});
form.on('error', function(err) {
console.log('An error has occured: \n' + err);
});
form.on('end', function() {
res.end('success');
});
});
Aber immer nichts passiert im Router. Die Anfrage kommt in den Router, aber danach nichts.
Ist hier etwas falsch? Es wird kein Fehler auf der Serverseite und auf der Clientseite angezeigt, nachdem die lange Warteanforderung fehlgeschlagen ist.
Bitte vorschlagen. Dank