const express = require('express'); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const router = express.Router(); // Ensure uploads directory exists const uploadDir = path.join(__dirname, '../uploads'); if (!fs.existsSync(uploadDir)) { fs.mkdirSync(uploadDir); } // Configure Multer Storage const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, uploadDir); }, filename: (req, file, cb) => { // Generate unique filename: timestamp-random.ext const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9); const ext = path.extname(file.originalname); cb(null, uniqueSuffix + ext); } }); const upload = multer({ storage: storage }); // POST /api/upload router.post('/', upload.single('file'), (req, res) => { if (!req.file) { return res.status(400).json({ error: 'No file uploaded' }); } // Return the URL to access the file // Assumes server serves 'uploads' folder at '/uploads' const fileUrl = `/uploads/${req.file.filename}`; res.json({ url: fileUrl, filename: req.file.filename }); }); module.exports = router;