Multer es un middleware de Node.js que facilita la carga de archivos en aplicaciones basadas en Express. Se utiliza principalmente para manejar formularios multipart/form-data, el formato más común para la subida de archivos en la web.
Para utilizar Multer, primero debes instalarlo en tu proyecto:
npm install multer
1. Importa Multer y configura el almacenamiento: Define cómo y dónde quieres almacenar los archivos cargados.
2. Aplica Multer como middleware: Usar Multer dentro de las rutas de Express para gestionar las subidas de archivos.
Aquí un ejemplo básico:
const express = require('express');
const multer = require('multer');
const app = express();
// Configuración del almacenamiento
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/'); // Carpeta donde se guardarán los archivos
},
filename: function (req, file, cb) {
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
cb(null, file.fieldname + '-' + uniqueSuffix);
}
});
const upload = multer({ storage: storage });
// Ruta para subir un archivo
app.post('/upload', upload.single('archivo'), (req, res) => {
res.send('Archivo subido exitosamente.');
});
app.listen(3000, () => {
console.log('Servidor en funcionamiento en http://localhost:3000');
});
Multer también permite subir múltiples archivos a la vez usando upload.array()
:
app.post('/upload-multiple', upload.array('archivos', 10), (req, res) => {
res.send('Archivos subidos exitosamente.');
});
Puedes restringir los tipos de archivos usando el campo fileFilter
:
const upload = multer({
storage: storage,
fileFilter: function (req, file, cb) {
if (file.mimetype !== 'image/jpeg') {
return cb(new Error('Solo se permiten archivos JPEG'), false);
}
cb(null, true);
}
});
Para más información sobre el uso avanzado de Multer, puedes consultar la documentación oficial de Multer.
Jorge García
Fullstack developer