2016-01-05 4 views
3

Я получил пустой массив, выполнив ниже функцию после выполнения документации.Загрузите несколько файлов с помощью multer failed

var multer = require('multer'); 
var upload = multer(); 
    router.post('/image', upload.array('photos', 4), function(req, res) { 
     var file = req.files; 
     console.log('======') 
     console.log(file); 
     res.end(); 
    }); 

<form action="/products/image" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file" value="upload" multiple> 
    <input type="submit" value="upload"> 
</form> 

Но самое странное, это на самом деле работает

router.post('/image',upload.single('avatar'), function(req, res) { 
    var file = req.files; 
    console.log('======') 
    console.log(file); 
    res.end(); 
}); 

с одной загрузки файла.

ответ

7

Upload.array() имя требуемого поля и параметры maxCount. Но вы дали имя файла «файл», и вы используете промежуточное ПО upload.array ('photos', 4). Попробуйте в ниже, как он может работать

upload.array('file',4) 

или

upload.any(); 

пожалуйста, обратитесь к документу: https://github.com/expressjs/multer

+0

, где я должен указать свой атрибут для MAXCOUNT в нефрите? –

+0

Вы уже указали здесь: router.post ('/ image', upload.array ('photos', 4). Вы просто переименовываете 'photos' как 'file' thats it –

+0

awsome, это запутанно, теперь оно очищено, tq. –

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