วันพฤหัสบดีที่ 10 กุมภาพันธ์ พ.ศ. 2554

x-sendfile กับ lighttpd คุณสมบัติการส่งไฟล์ขนาดใหญ่ที่รวดเร็ว

จากที่เราใช้ Kloxo เป็น webpanel ซึ่งสามารถเปลี่ยนจาก apache มาใช้ lighttpd ซึ่งมันมีคุณสมบัติอย่างนึงที่ผมต้องการคือ สามารถเปิดใช้ x-sendfile ในการส่งไฟล์ได้ เรามาเริ่ม config มาเริ่มเลยนะครับ

ขั้นแรก เราต้องเปิดการใช้งานงาน โดยเข้าไปแก้ไขไฟล์ /etc/lighttpd/conf/kloxo/lighttpd.ชื่อเว็บที่เราต้องการเปิดใช้ และให้เพิ่มบรรทัดตัวสีแดงเข้าไปนะครับ
           
fastcgi.server = (
              ".php" => ( (
                                    # ....
                                   "allow-x-send-file" => "enable" 
                 ))
)



ขั้นที่ 2 เขียน php เพื่อทำการส่งไฟล์ 

$full_path = “/home/admin/my.domain.com/storage/”.$filename; //ตัวหนาคือ path จริงของไฟล์ แบบ full  path นะครับ
header(“X-LIGHTTPD-send-file: “.$full_path); 

header(“Content-type: “.$mimetype); // บอกชนิดไฟล์ เช่น application/zip แบบนี้ซึ่งหาคู่มืออ่านต่อไปเองนะครับ
header(“Content-Disposition: attachment; filename=\”".$originalfilename.”\”"); //ชื่อไฟล์ที่แสดงในการดาวน์โหลด 
  

ไม่มีความคิดเห็น:

แสดงความคิดเห็น