taller-ionic/backend/routes/uploadRoutes.js
2025-04-24 12:44:46 -04:00

44 lines
1.3 KiB
JavaScript

const express = require('express');
const multer = require('multer');
const path = require('path');
const { v4: uuidv4 } = require('uuid');
const { uploadFile } = require('../controllers/uploadController');
const router = express.Router();
// Set up storage configuration for multer
const storage = multer.diskStorage({
destination: function(req, file, cb) {
// Usar una ruta absoluta para evitar problemas
const uploadPath = path.join(__dirname, '../uploads');
console.log('Ruta de destino para uploads:', uploadPath);
cb(null, uploadPath);
},
filename: function(req, file, cb) {
// Generar un nombre único para el archivo
const fileExt = path.extname(file.originalname);
const fileName = `${uuidv4()}${fileExt}`;
console.log('Nombre generado para el archivo:', fileName);
cb(null, fileName);
}
});
// File filter
const fileFilter = (req, file, cb) => {
// Accept images only
if (!file.originalname.match(/\.(jpg|jpeg|png|gif)$/)) {
return cb(new Error('Only image files are allowed!'), false);
}
cb(null, true);
};
// Init upload
const upload = multer({
storage: storage,
limits: { fileSize: 1024 * 1024 * 5 }, // 5MB max file size
fileFilter: fileFilter
});
router.post('/', upload.single('file'), uploadFile);
module.exports = router;