Полное руководство по настройке Multer: простая загрузка файлов

В современной веб-разработке загрузка файлов является важной функцией многих приложений. Multer — популярное промежуточное программное обеспечение для обработки загрузки файлов в Node.js. В этой статье мы рассмотрим различные методы настройки Multer в ваших приложениях Node.js и Express.js, а также приведем примеры кода.

  1. Базовая настройка Multer:
    Базовая настройка включает установку пакета Multer и его настройку для обработки загрузки файлов. Вот пример:
const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
  // Process the uploaded file
  res.send('File uploaded successfully');
});
app.listen(3000, () => {
  console.log('Server started on port 3000');
});
  1. Обработка нескольких файлов:
    Multer позволяет обрабатывать несколько файлов в одном запросе. Вот пример:
const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.array('files', 5), (req, res) => {
  // Process the uploaded files
  res.send('Files uploaded successfully');
});
app.listen(3000, () => {
  console.log('Server started on port 3000');
});
  1. Настраиваемое хранилище файлов:
    Вы можете указать собственные параметры хранения с помощью Multer. Например, вы можете переименовать загруженный файл или сохранить его в определенном каталоге. Вот пример:
const express = require('express');
const multer = require('multer');
const app = express();
const storage = multer.diskStorage({
  destination: 'uploads/',
  filename: (req, file, cb) => {
    cb(null, Date.now() + '-' + file.originalname);
  }
});
const upload = multer({ storage });
app.post('/upload', upload.single('file'), (req, res) => {
  // Process the uploaded file
  res.send('File uploaded successfully');
});
app.listen(3000, () => {
  console.log('Server started on port 3000');
});
  1. Проверка типа файла:
    Multer позволяет вам проверить тип файла перед принятием загрузки. Вот пример:
const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ 
  dest: 'uploads/',
  fileFilter: (req, file, cb) => {
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
      cb(null, true);
    } else {
      cb(new Error('Invalid file type'));
    }
  }
});
app.post('/upload', upload.single('file'), (req, res) => {
  // Process the uploaded file
  res.send('File uploaded successfully');
});
app.listen(3000, () => {
  console.log('Server started on port 3000');
});

Multer упрощает процесс обработки загрузки файлов в приложениях Node.js и Express.js. В этой статье мы рассмотрели различные методы настройки Multer, включая базовую настройку, обработку нескольких файлов, настраиваемое хранилище и проверку типа файла. Используя эти методы, вы можете легко интегрировать функцию загрузки файлов в свои веб-приложения.

Не забывайте принимать меры безопасности и тщательно обрабатывать загрузку файлов, чтобы предотвратить любые потенциальные уязвимости.