Upload Files ใน node.js

การอัปโหลดไฟล์ใน Node.js มีหลายวิธีและไลบรารีที่สามารถช่วยให้คุณดำเนินการนี้ได้อย่างง่ายดาย ในที่นี้เราจะใช้ไลบรารี express และ multer เพื่ออัปโหลดไฟล์ในแอปพลิเคชัน Node.js:

  1. ติดตั้ง Express และ Multer:
    ก่อนอื่นให้ติดตั้ง Express และ Multer โดยใช้ npm หรือ yarn:

    1
    npm install express multer
  2. สร้างโครงการ Express:
    สร้างแอปพลิเคชัน Express ด้วยการสร้างไฟล์ JavaScript หรือ TypeScript โดยใช้ express-generator หรือสร้างด้วยตนเอง ดังนี้:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    const express = require('express');
    const multer = require('multer');
    const app = express();
    const port = 3000;

    // กำหนดที่เก็บไฟล์อัปโหลด
    const storage = multer.diskStorage({
    destination: function (req, file, cb) {
    cb(null, 'uploads/') // กำหนดให้ไฟล์ถูกบันทึกไว้ในโฟลเดอร์ uploads/
    },
    filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
    }
    });

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

    // เริ่มต้นแอปพลิเคชัน Express
    app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
    });

    // เรียกใช้งานการอัปโหลดไฟล์
    app.post('/upload', upload.single('myFile'), (req, res) => {
    res.send('ไฟล์ถูกอัปโหลดเรียบร้อย');
    });

    app.listen(port, () => {
    console.log(`Server is running at http://localhost:${port}`);
    });
  3. สร้างไฟล์ HTML สำหรับอัปโหลดไฟล์:
    สร้างไฟล์ HTML ที่ใช้สำหรับอัปโหลดไฟล์ ตัวอย่าง HTML ดังนี้:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html>
    <html>
    <head>
    <title>อัปโหลดไฟล์</title>
    </head>
    <body>
    <h1>อัปโหลดไฟล์</h1>
    <form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="myFile" />
    <input type="submit" value="อัปโหลด" />
    </form>
    </body>
    </html>
  4. เริ่มแอปพลิเคชัน:
    รันแอปพลิเคชัน Node.js ของคุณโดยใช้คำสั่ง:

    1
    node app.js
  5. ทดสอบ:
    เข้าถึงแอปพลิเคชันของคุณผ่านเว็บเบราว์เซอร์ที่ URL http://localhost:3000 และลองอัปโหลดไฟล์จากแบบฟอร์ม.

ไฟล์ที่ถูกอัปโหลดจะถูกบันทึกในโฟลเดอร์ uploads/ โดยใช้ชื่อไฟล์ที่มีการเพิ่มเข้าไปด้วย timestamp เพื่อป้องกันการซ้ำซ้อน.

นี่คือเพียงตัวอย่างการอัปโหลดไฟล์ใน Node.js โดยใช้ Express และ Multer คุณสามารถปรับแต่งและขยายตัวอย่างนี้ตามความต้องการของคุณเพื่อรองรับการอัปโหลดไฟล์ในโปรเจค Node.js ของคุณ.