middleware_upload.js

/**
 * @fileoverview Configuration du middleware Multer pour le téléchargement de fichiers
 * @module middleware/upload
 */

const multer = require('multer');

/**
 * Configuration du stockage en mémoire pour Multer
 * @constant {Object} storage
 */
const storage = multer.memoryStorage();

/**
 * Fonction de filtrage des fichiers
 * @function fileFilter
 * @param {Object} req - Objet de requête Express
 * @param {Object} file - Information sur le fichier téléchargé
 * @param {function} cb - Fonction de callback
 * @returns {void}
 */
const fileFilter = (req, file, cb) => {
  // Accept images only
  if (!file.mimetype.startsWith('image/')) {
    return cb(new Error('Only image files are allowed!'), false);
  }
  cb(null, true);
}

/**
 * Configuration de Multer avec les options définies
 * @constant {Object} upload
 * @property {Object} storage - Configuration du stockage
 * @property {function} fileFilter - Fonction de filtrage des fichiers
 * @property {Object} limits - Limites de taille de fichier (5 MB)
 */
const upload = multer({ 
  storage: storage,
  fileFilter: fileFilter,
  limits: { 
    fileSize: 5 * 1024 * 1024 // 5 MB limit
  }
}); 

module.exports = upload;