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

วิธีสร้างลิงก์ดาวน์โหลด (Download Link) ด้วย HTML

ใช้แอตทริบิวต์ download ในแท็ก <a> เพื่อบังคับให้เบราว์เซอร์ดาวน์โหลดไฟล์แทนที่จะเปิดในแท็บใหม่

ตัวอย่างโค้ด

<!DOCTYPE html>
<html>
<body>
  <h1>ตัวอย่างลิงก์ดาวน์โหลด</h1>
  <a href="https://example.com/image.jpg" download>
    <img src="https://example.com/image.jpg" style="width: 300px; height: 300px;">
  </a>
  <h2>คลิกที่รูปภาพด้านบนเพื่อดาวน์โหลด</h2>
</body>
</html>

ผลลัพธ์

เมื่อคลิกที่รูปภาพ (หรือลิงก์) เบราว์เซอร์จะดาวน์โหลดไฟล์รูปภาพแทนที่จะแสดงในเบราว์เซอร์

ระบุชื่อไฟล์เมื่อดาวน์โหลด

สามารถกำหนดชื่อไฟล์ที่ต้องการให้บันทึกได้:

<a href="document.pdf" download="รายงานประจำปี2024.pdf">ดาวน์โหลดรายงาน</a>

ข้อจำกัดและข้อควรระวัง

  • Same-Origin Policy: แอตทริบิวต์ download ทำงานได้เฉพาะไฟล์ที่อยู่ในโดเมนเดียวกัน (Same Origin) หากเป็น Cross-Origin จะไม่ทำงานในเบราว์เซอร์สมัยใหม่
  • รองรับเบราว์เซอร์: Chrome, Firefox, Edge, Opera (รุ่นใหม่) - ไม่รองรับ IE/Safari เก่า
  • ประเภทไฟล์: ทำงานได้กับไฟล์ทุกประเภท (รูป, PDF, ZIP, TXT, etc.)

วิธีแก้ Cross-Origin Download

หากต้องดาวน์โหลดไฟล์จากโดเมนอื่น ให้ใช้วิธีฝั่งเซิร์ฟเวอร์ (Server-side) เช่น:

<?php
// download.php
$file = 'https://other-domain.com/file.pdf';
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile($file);
?>

แล้วลิงก์ไปที่ download.php แทน