Я просто не могу понять, в чем причина, почему мои коды ниже. Я пытаюсь загрузить несколько файлов, заданных с помощью простого пользователя (JADE):Загрузите несколько файлов с помощью Multer? (Nodejs)
input#upload-gallery(type='file', multiple="multiple", name='picture')
и некоторых яваскрипта контроллера, чтобы отправить данные каждый раз, когда пользователь вставка файлы пользователя UPLOADER
$("#upload-gallery").on('change', function(){
var files = $(this).get(0).files;
if (files.length > 0) {
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
var file = files[i];
formData.append('pictures', file, file.name);
}
$.ajax({
url : '/upload/pictures',
type : 'POST',
data : formData,
processData : false,
contentType : false,
success : function (links) {
}
});
}
})
Вот часть сервера :
var multer = require('multer');
var upload = multer({dest: "./gallery"});
...
...
app.post('/upload/pictures', upload.any(), function(req, res, next){
console.log(req.files) // <-- it always return [] array
});
проблема заключается в том, что req.files
всегда возвращает пустой массив. Я могу сделать это, чтобы загрузить один файл просто отлично, но я не могу заставить его загружать несколько файлов. Так что здесь не так?
То, что я пытался до сих пор:
- изменения
formData
часть вformData.append('pictures[]', file, file.name);
не работает - Изменение
upload.any()
вupload.array('pcitures')
, не работает
Я получил это работает для меня с кодом вы уже предоставленной. Существует ли противоречивый маршрут или форма не multipart/form-data? – Aldose
Вы правы. Я создаю еще один новый чистый проект, чтобы проверить, есть ли у меня неисправность 'node' или что-то еще. Оно работает! – DennyHiu