การเขียน PHP เพื่อดาวน์โหลดไฟล์บน Server Nginx
ความสามารถของ Server Nginx ที่สามารถใช้ทรัพยากรได้คุ้มค่ากว่่า Apache ทำให้ Nginx ถูกเลือกเพื่อใช้งานกับเว็บที่มีจำนวนผู้ใช้มหาศาล เช่น facebook (มีบางช่วงที่เปิด facebook แล้วพบข้อความว่า Welcome to nginx นั่นแหละครับที่แสดงว่าเขากำลังติดตั้ง Server ตัวนี้อยู่) โดยเฉพาะการดาวน์โหลดไฟล์เพื่อให้รองรับผู้ใช้จำนวนมากขึ้น การใช้ Server Nginx จะทำได้ดีกว่าครับ และนอกจากนี้ Nginx ยังมี X-Accel-Redirect ซึ่งเป็นความสามารถในการส่งต่อไฟล์ดาวน์โหลดไปยัง Server โดยตรงหลังจากส่งคำสั่งจาก PHP ไปยัง Server ทำให้เราไม่ต้องเสีย Process 2 ต่อไปกับ PHP และการดาวน์โหลดไฟล์จาก Server อีกต่อไป
การใช้งานคำสั่งนี้บน Server ก็แสนง่ายนะครับ (ไฟล์นี้ต้องรันบน Server Nginx ที่สามารถประมวลผล PHP ได้นะครับ)
การใช้งานคำสั่งนี้บน Server ก็แสนง่ายนะครับ (ไฟล์นี้ต้องรันบน Server Nginx ที่สามารถประมวลผล PHP ได้นะครับ)
<?php
// ชื่อไฟล์ที่ต้องการเมื่อดาวน์โหลด
$filename = 'test.avi';
// path ที่เก็บไฟล์บน Server
$file = '/path/to/source.avi';
// กำหนด header สำหรับชื่อไฟล์
header("Content-Disposition: attachment;filename=$filename");
// กำหนด header สำหรับการดาวน์โหลดไฟล์
header('Content-Type: application/octet-stream');
// ส่งต่อไฟล์ดาวน์โหลดไปยัง Server
header("X-Accel-Redirect: /$file");
?>