import path from 'path'; import { fileURLToPath } from 'url'; import multer from 'multer'; import 'dotenv/config'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const UPLOAD_DIR = process.env.UPLOAD_DIR || path.join(__dirname, '../../uploads'); const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, UPLOAD_DIR); }, filename: (req, file, cb) => { const timestamp = Date.now(); const ext = path.extname(file.originalname); cb(null, `${timestamp}${ext}`); } }); const fileFilter = (req, file, cb) => { const allowedTypes = /jpeg|jpg|png|gif|webp/; const ext = allowedTypes.test(path.extname(file.originalname).toLowerCase()); const mime = allowedTypes.test(file.mimetype); if (ext && mime) { cb(null, true); } else { cb(new Error('Only image files are allowed'), false); } }; const upload = multer({ storage, fileFilter, limits: { fileSize: 5 * 1024 * 1024 } }); export default upload;