Как я могу загрузить файлы в ExpressJS 4.x

Я знаю, что есть что-то вроде multiparty, а также busboy и грозный. Я хочу знать, есть ли возможность загружать файлы без них.

2 ответа

Решение

Если вы хотите загружать файлы, вы должны иметь возможность анализировать многокомпонентный контент. Вы можете использовать его для анализа или реализовать свой собственный. Вот список модулей, которые могут вам помочь:

Прямой анализ (по убыванию популярности по звездам Github по состоянию на ноябрь 2016 года):

Middleware:

И то и другое:

  • parted - последний коммит янв 2015

Если вы хотите написать свой собственный парсер, вы можете посмотреть, как это делают вышеупомянутые модули. Проверьте эти ссылки также:

Удачного кодирования.

Без них парсинг многочастных форм может быть трудно сделать правильно и эффективно. Если вы действительно не хотите проходить эту работу по анализу составных частей самостоятельно (формы urlencoded намного проще), вам действительно следует использовать один из методов connect-multiparty, multer, connect- busboy, reformed и т. Д.

Автономные парсеры, такие как busboy, можно использовать с Express.js или без него. С другой стороны, промежуточное ПО Express.js расширяет объект запроса, добавляяreq.filesчто вы можете легко получить доступ к файлам. Некоторые реализации хранят промежуточные файлы либо во временном каталоге, либо в памяти. Другие позволяют получить доступ к потоку загруженного содержимого файлов, не занимая память сервера или жесткий диск.

Можно самостоятельно реализовать синтаксический анализ HTTP-запроса multipart / form-data, и это прекрасное упражнение по программированию. Однако, если время разработки, ремонтопригодность и исправление ошибок вызывают беспокойство, тогда готовые библиотеки пригодятся.

В зависимости от вашей ситуации задайте эти вопросы, чтобы определить, какая библиотека вам больше подходит.

  • сохраняет промежуточные файлы нормально, или вы хотите передать файлы в потоковом режиме?
  • если можно сохранить промежуточные файлы, вы бы предпочли их в памяти или на жестком диске?

Затем выберите одну из списка наиболее часто используемых библиотек обработки загрузки файлов. Дерево решений взято из статьи:

Выберите между Formidable, Busboy, Multer и Multiparty для обработки загрузки файлов.

Выберите между Formidable, Busboy, Multer и Multiparty для обработки загрузки файлов.

Другие вопросы по тегам