2016-08-21 4 views
1

Я просто не могу понять, в чем причина, почему мои коды ниже. Я пытаюсь загрузить несколько файлов, заданных с помощью простого пользователя (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'), не работает
+0

Я получил это работает для меня с кодом вы уже предоставленной. Существует ли противоречивый маршрут или форма не multipart/form-data? – Aldose

+0

Вы правы. Я создаю еще один новый чистый проект, чтобы проверить, есть ли у меня неисправность 'node' или что-то еще. Оно работает! – DennyHiu

ответ

0

Оказывается, у меня есть multipart плагин, который противоречит multer. Просто закомментирована их в app.js

//var multipart  = require('connect-multiparty'); 
//app.use(multipart()); 

и проблема ушла

+0

круто круто, рад, что смогу помочь – Aldose

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