GORAGOD.com

freelance, web developer, web designer, hosting, domain name

การเขียน 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 ได้นะครับ)
<?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");

?>
0SHAREFacebookLINE it!
^