2014-07-11 2 views
0

расслоение плотной HTML:req.files пуст при попытке загрузить файл на сервер с узла

<form action="/uploadpic" method="post" enctype="multipart/form-data"> 
    <input type="file" data-clear-btn="true" name="image" id="new_pic" value="" placeholder="Choose File"> 
    <input type="submit" value="Add" style="width:30%"> 
</form> 

NodeJS:

app.post('/uploadpic', function(req,res) { 
console.log(req.files); 
console.log(req.body);}); 

Я также использую:

var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded()); 
app.use(bodyParser.json()) 
app.use(express.bodyParser({uploadDir:'./uploads'})); 
app.use(bodyParser.json({ type: 'application/vnd.api+json' })) 

в пульт я получаю:

{} 
{} 

Я не понимаю, что может быть проблемой здесь .. спасибо!

+0

Какую версию Express вы используете? Я использовал BodyParser для загрузки файлов с помощью Express 3 * –

+0

Я использую Express 3. как вы используете парсер для загрузки файлов? – Gil

ответ

0

BodyParser не включает файлы. Вам нужно использовать что-то вроде multer или multiparty.

Также экспресс (4.0+) больше не поставляется с промежуточным ПО, поэтому для запросов POST вам необходимо использовать bodyparser.

0
var fs = require('fs'); 

    app.post('/uploadpic', function(req,res) { 

    //req.files contains array of files iterate and get it 
    //if it has only one. it is like object 

    //here is the code for object 

    if (req && req.files) { 

    var contentType = req.files.file.type;  
    var fname = req.files.file.name;  
    var image_path = req.files.file.path;  
    fs.readFile(image_path, function (err, data) { 
     var data = data; //this is your data use this 
    }) 

    } 

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