Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แสดงตัวอย่างภาพก่อนอัปโหลดด้วย JavaScript (FileReader)

ใช้ FileReader API อ่านไฟล์ภาพแล้วแสดง Preview ก่อนอัปโหลดจริง

ตัวอย่าง (Vanilla JS - ไม่ต้อง jQuery)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Image Preview</title>
  <style>
    #preview { max-width: 300px; max-height: 200px; display: none; }
  </style>
</head>
<body>
  <input type="file" id="imageInput" accept="image/*" />
  <br><br>
  <img id="preview" src="#" alt="Preview" />
  <script>
    const input = document.getElementById('imageInput');
    const preview = document.getElementById('preview');
    
    input.addEventListener('change', (e) => {
      const file = e.target.files[0];
      if (file && file.type.startsWith('image/')) {
        const reader = new FileReader();
        reader.onload = (event) => {
          preview.src = event.target.result;
          preview.style.display = 'block';
        };
        reader.readAsDataURL(file);
      }
    });
  </script>
</body>
</html>

คำอธิบาย

  • input type="file" accept="image/*" กรองเฉพาะไฟล์ภาพ
  • FileReader.readAsDataURL(file) อ่านไฟล์เป็น Base64 Data URL
  • Event onload ใส่ event.target.result ให้ img.src
  • ไม่ต้องใช้ jQuery ทำได้ด้วย Vanilla JS อย่างสมบูรณ์

ผลลัพธ์

เลือกไฟล์ภาพ → แสดง Preview ทันทีโดยไม่ต้องอัปโหลดเซิร์ฟเวอร์