multer โ
ไธไธช node.js ไธญ้ดไปถ๏ผ็จไบๅค็ multipart/form-data ็ฑปๅ็่กจๅๆฐๆฎ๏ผๅฎไธป่ฆ็จไบไธไผ ๆไปถใ
bash
npm install multerjs
const multer = require('multer');
const path = require('path');
const storage = multer.diskStorage({
destination: path.join(__dirname, '..', 'uploads'),
filename: (req, file, cb) => {
const ext = file.originalname.split('.').pop();
cb(null, `${Date.now()}.${ext}`);
},
});
const upload = multer({
storage,
limits: { fileSize: 2 * 1024 * 1024 }, // ้ๅถๆไปถๅคงๅฐ 2MB
// ้ๅถๆไปถ็ฑปๅ๏ผๅชๅ
่ฎธๅพ็๏ผ
fileFilter(req, file, cb) {
if (!file.mimetype.startsWith('image/')) {
return cb(new Error('ๅชๅ
่ฎธไธไผ ๅพ็'));
}
cb(null, true);
},
});
module.exports = upload;js
const express = require('express');
const upload = require('./upload/multer.config');
const path = require('path');
const app = express();
app.post('/upload', upload.single('file'), (req, res) => {
res.json({
filename: req.file.filename,
url: `/uploads/${req.file.filename}`,
});
});
app.use('/uploads', express.static(path.join(__dirname, 'uploads')));
app.listen(3000, () => console.log('Server running on 3000'));