2016-08-07 5 views
1

EDIT: Отредактировано с использованием предложения Михаила. Поставил ближе к решениюФайл не загружен правильно

Привет, Я пытаюсь загрузить файл JSON с помощью nodejs, но по какой-то причине он говорит, что мой файл не определен. Однако файл в моей общей папке содержит содержимое загруженного файла. Мне было интересно, сможет ли кто-нибудь помочь мне. Благодаря

Вот HTML-

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

EDIT: Вот server.js

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

}); 

Вот файл JSON

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

Вот что в настоящее время регистрируется

FIRST TEST: [object Object] 
+0

Попробуйте использовать 'console.log (req);' или 'console.log (req.files);' для цели отладки. – technico

+0

Установили ли вы [multer] (https://github.com/expressjs/multer)? – Harangue

+0

EDIT: с req он говорит [object Object], и с req.files он говорит undefined – srsxyz

ответ

3

Измените ваш JSON.stringify(req.files)JSON.stringify(req.file) к

Полный код

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"); 
}); 

Примечание:

Имя файла, которое вы используете в методе multer.single(), должно соответствовать имени на входе <input type="file" name="userFile" />

+0

Я сделал это и он возвратил объект объекта. – srsxyz

+0

@Nik странно, потому что я испытал код перед ответом на ваш вопрос и с вашим файлом JSON '[{" name ":" FIRST LAST "," date ":" 12/22/2016 "," number " : "7523924324"}] 'all should work – Mikhail

+0

@Nik Вам нужно скачать содержимое файла после загрузки? – Mikhail

1

Если вы используете метод .single(...), файл будет находиться в req.file.

Смежные вопросы