A-AA+then

ปกติแล้วมีมีการสร้างลิงค์ ไปยังไฟล์ เช่น ไฟล์รูปภาพ หรือไฟล์ txt ตัวบราวเซอร์เองเมื่อได้รับลิงค์นั้นๆจะไปทำการเรียกโปรแกรมที่ลงทะเบียนไว้กับระบบปฏิบัติการเพื่อเปิดไฟล์นั้นๆ ดังนั้นโดยทั่วๆไปเราจึงไม่สามารถบันทึกไฟล์เหล่านั้นลงบนคอมพิวเตอร์โดยตรง นอกจากจะเปิดมันขึ้นมาก่อน แล้วค่อยสั่งบันทึก

ใน PHP เราสามารถเขียนคำสั่ง เพื่อดาวน์โหลดไฟล์ที่ต้องการได้ครับ ด้วยการเขียนคำสั่งของ PHP เพื่อเรียกไฟล์ และ กำหนด Header ให้บราวเซอร์รู้ว่าเป็นการดาวน์โหลด 
<?php
  $download=$_GET[download];//รับค่ามาจากการคลิกที่ Link
  $path="";//ในตัวอย่างนี้เป็น path เดียวกันกับไฟล์เลยไม่ต้องระบุ path
  
  if (isset($download)) {
    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=$download");
    @readfile("$path/$download");
  } else {
    echo "บังคับให้เว็บเพจทำการดาวน์โหลดไฟล์ (ที่ปกติจะดาวน์โหลดไม่ได้ เช่น รูป pdf doc txt sql php หรือ อื่นๆ)<br /><br />";
    echo "<a href=download.php?download=download.php>ดาวน์โหลด</a> ไฟล์ download.php";
  }
?>

header("Content-Disposition: attachment; filename=$download");
ตัวแปร $download จะระบุแค่ชื่อไฟล์นะครับ ไม่ต้องระบุ path 

@readfile("$path/$download");
ส่วนตัวแปร $path จะระบุ path ที่เก็บไฟล์ที่จะดาวน์โหลด ไม่ต้องมี / ต่อท้าย เพราะในโปรแกรมเติมให้แล้ว

ตัวอย่าง

PHP

Relate

^