دوره‌ها / Node.js / آپلود فایل ساده (Basic File Upload)

آپلود فایل ساده (Basic File Upload)

15 دقیقه Article

آپلود فایل ساده: آپلود فایل با Multer 📤

بیایید یک سیستم آپلود فایل ساده بسازیم!

const express = require('express');
const multer = require('multer');
const path = require('path');

const app = express();

// تنظیم storage
const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'uploads/');
    },
    filename: (req, file, cb) => {
        const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
        cb(null, file.fieldname + '-' + uniqueSuffix + path.extname(file.originalname));
    }
});

const upload = multer({ storage: storage });

// Route برای آپلود
app.post('/upload', upload.single('file'), (req, res) => {
    if (!req.file) {
        return res.status(400).json({ error: 'No file uploaded' });
    }
    
    res.json({
        message: 'File uploaded successfully',
        file: {
            filename: req.file.filename,
            size: req.file.size,
            mimetype: req.file.mimetype
        }
    });
});

app.listen(3000);

HTML Form:


<form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="file" required>
    <button type="submit">Upload</button>
</form>
✅ یاد گرفتید: آپلود فایل با Multer ساده است!

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تمرین: آپلود فایل Medium
سوال تمرین

🎯 تمرین: File Upload Endpoint

یک endpoint برای آپلود فایل بسازید.

پاسخ تمرین
JAVASCRIPT
const express = require('express');
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });

const app = express();

app.post('/upload', upload.single('file'), (req, res) => {
    if (!req.file) {
        return res.status(400).json({ error: 'No file uploaded' });
    }
    res.json({ 
        filename: req.file.filename,
        size: req.file.size 
    });
});

app.listen(3000);

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.