2016-08-07 5 views
1

EDIT: Editiert es mit Mikhails Vorschlag. Näher an der LösungDatei wird nicht korrekt hochgeladen

Hallo Ich versuche, eine JSON-Datei mit nodejs hochladen, aber aus irgendeinem Grund heißt es, meine Datei ist undefiniert. In meinem öffentlichen Ordner wird jedoch eine Datei angezeigt, die den Inhalt der hochgeladenen Datei enthält. Ich habe mich gefragt, ob mir jemand helfen könnte. Dank

Hier ist der HTML

<form method="post" enctype="multipart/form-data" action="/file-upload"> 
    <input type="file" name="theFile" > 
    <input type="submit" class = "submit"> 
</form> 

EDIT: Hier ist die server.js ist

app.post('/testtwilio',upload.single('theFile'),function(req, res, next) { 
console.log('FIRST TEST: ' + req.file); 

}); 

Hier wird die JSON-Datei

[{"name":"FIRST LAST","date":"12/22/2016","number":"7523924324"}] 

Hier ist was

protokolliert wird
FIRST TEST: [object Object] 
+0

Versuchen Sie mit 'console.log (req);' oder 'console.log (req.files);' zu Debugging-Zwecken. – technico

+0

Haben Sie [multer] (https://github.com/expressjs/multer) eingerichtet? – Harangue

+0

EDIT: mit req heißt es [object Object] und mit req.files heißt es undefined – srsxyz

Antwort

3

ändern JSON.stringify(req.files)-JSON.stringify(req.file)

Voll Code

HTML

<form id = "uploadForm" enctype = "multipart/form-data" action = "/api/file" method = "post"> 
    <input type="file" name="userFile" /> 
    <input type="submit" value="Upload File" name="submit"> 
</form> 

JS

var express = require('express') 
var multer = require('multer') 
var upload = multer({ dest: 'uploads/' }) 
var app = express() 

app.get('/',function(req,res){ 
     res.sendFile(__dirname + "/index.html"); 
}); 

app.post('/api/file', upload.single('userFile'), function (req, res, next) { 
    console.log(JSON.stringify(req.file)) 
}) 

app.listen(3000,function(){ 
    console.log("Working on port 3000"); 
}); 

Hinweis:

Dateiname, den Sie in multer.single() Methode verwenden, sollte Name in Eingabe <input type="file" name="userFile" />

+0

Ich tat das und es gab [Objekt Objekt] zurück. – srsxyz

+0

@Nik es ist seltsam, weil ich den Code vor der Antwort auf Ihre Frage erfahren habe, und mit Ihrer JSON-Datei '[{" name ":" FIRST LAST "," date ":" 22.12.2016 "," number " : "7523924324"}] 'sollte alles funktionieren – Mikhail

+0

@Nik Sie müssen den Inhalt der Datei nach dem Hochladen bekommen? – Mikhail

1

Wenn Sie die Methode .single(...) verwenden, befindet sich die Datei in req.file.