грозный может обрабатывать только один файл?

Я пытаюсь использовать грозный для синтаксического анализа формы с загрузкой нескольких файлов, но каким-то образом результат показывает только один файл. Вот код синтаксического анализа, который я скопировал прямо из примера здесь: https://github.com/felixge/node-formidable

  var form = new formidable.IncomingForm();
  form.multiples = true; // per their documents
  form.parse(req, function(err, fields, files) {
  res.writeHead(200, {'content-type': 'text/plain'});
  res.write('received upload:\n\n');
  res.end(util.inspect({fields: fields, files: files})); // files only contain one file,
  // and files.length is undefined. It is not an array. 
});

Вот мой HTML:

 <FORM action="/file"
       enctype="multipart/form-data"
       method="post">
   <br>
   What is your name? 
   <INPUT type="text" name="kk1_submit-name"><BR>

   What files are you sending? 
   <INPUT type="file" multiple="multiple" name="uploads"><BR>
   <INPUT type="submit" value="Upload"> 

 </FORM>

Выходной объект json имеет только один файловый объект, а files.length не определен, даже если я выбираю 5 файлов для загрузки. Это промежуточное ПО хорошо протестировано, думаю, где-то я ошибся.

Что я сделал не так? Спасибо!


person Nicolas S.Xu    schedule 29.03.2014    source источник


Ответы (3)


Модуль formidable начал поддерживать загрузку нескольких файлов месяц назад. Но модуль formidable в npmjs.org был обновлен 11 месяцев назад. Поэтому вам нужно установить последнюю formidable вручную.

git clone  git://github.com/felixge/node-formidable.git node_modules/formidable

Теперь снова запустите приложение, и вы должны получить правильный результат:

received upload:

{ fields: { title: '' },
  files: { upload: [ [Object], [Object] ] } }
person bnuhero    schedule 29.03.2014
comment
Я понимаю. Это проблема. Как часто NPM обновляет свой репозиторий? - person Nicolas S.Xu; 29.03.2014
comment
Сопровождающие formidable решают, когда публиковать новую версию этого модуля. - person bnuhero; 29.03.2014

Со времени написания библиотека Formidable претерпела изменения. Теперь вы должны явно установить некоторые параметры объекта IncomingForm, в частности:

  • кратные: верно

Если вы хотите обойти размер файла:

  • maxFileSize: (примерно в байтах (не maxFieldsSize))

Это позволяет вам правильно использовать последнюю версию грозного

person Patrick Sturm    schedule 18.11.2017

Я перешел на node-multiparty, синтаксический анализатор форм, созданный из грозного. Количество загруженных файлов верное. Так что, может быть, это баг для грозного. Использование node-multiparty может сэкономить вам время.

введите описание изображения здесь

person Nicolas S.Xu    schedule 29.03.2014