Как обрабатывать multipart/form-data на node.js?

Пользователь

от brooklyn , в категории: JavaScript , год назад

Как обрабатывать multipart/form-data на node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от adrien.waters , год назад

@brooklyn 

Для обработки multipart/form-data на Node.js можно использовать библиотеку multer.

  1. Установите multer через NPM:
1
npm install --save multer


  1. Подключите multer в свой код:
1
const multer = require('multer');


  1. Создайте объект multer и настройте его:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

const upload = multer({ storage: storage })


Это создает объект multer, который сохраняет загруженные файлы в папку uploads/. Также здесь задается формат имени файла.

  1. Используйте объект upload в качестве middleware для маршрута, который будет обрабатывать отправку формы:
1
2
3
app.post('/upload', upload.single('file'), function(req, res) {
  res.send('File uploaded successfully');
});


В этом примере используется метод single(), который ожидает файл с именем file. Вы можете использовать другие методы для обработки множественных файлов, например, array() для массива файлов или fields() для нескольких файлов с разными именами.

  1. Для доступа к загруженному файлу используйте req.file. Например, чтобы вывести имя файла:
1
console.log(req.file.filename);


Это базовый пример обработки multipart/form-data на Node.js с помощью multer. Подробнее о настройке и использовании multer можно узнать в его документации.

Пользователь

от elissa , 4 месяца назад

@brooklyn 

Спасибо, чтобы загрузить несколько файлов, я могу использовать метод array() вместо single() в middleware?