เพื่อดาวน์โหลดไฟล์ขนาดใหญ่ผ่านสคริปต์ PHP โค้ดมีดังนี้:
ตัวอย่าง
<?php function readfile_chunked($filename,$retbytes=true) { $chunksize = 1*(1024*1024); // จำนวนไบต์ต่อชั๊นก์ที่ต้องการอ่าน $buffer = ''; $cnt =0; $handle = fopen($filename, 'rb'); if ($handle === false) { return false; } while (!feof($handle)) { $buffer = fread($handle, $chunksize); echo $buffer; if ($retbytes) { $cnt += strlen($buffer); } } $status = fclose($handle); if ($retbytes && $status) { return $cnt; // คืนจำนวนไบต์ที่ส่งมอบเหมือน readfile() } return $status; } ?>ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
ไฟล์ขนาดใหญ่จะถูกดาวน์โหลด
ฟังก์ชัน 'readfile_chunked' (ผู้ใช้กำหนด) รับสองพารามิเตอร์ - ชื่อไฟล์และค่าเริ่มต้น 'true' สำหรับจำนวนไบต์ที่คืนกลับ หมายถึงไฟล์ขนาดใหญ่ดาวน์โหลดสำเร็จ ตัวแปร 'chunksize' ประกาศจำนวนไบต์ต่อชั๊นก์ที่ต้องอ่าน ตัวแปร 'buffer' กำหนดเป็น null และ 'cnt' ตั้งค่าเป็น 0 เปิดไฟล์ในโหมดอ่านไบนารีและกำหนดให้ตัวแปร 'handle'
จนกว่าจะถึง end-of-file ของ 'handle' ลูป while จะทำงานและอ่านเนื้อหาไฟล์ตามจำนวนชั๊นก์ที่ต้องอ่าน จากนั้นแสดงบนหน้าจอ หากค่า 'retbytes' (พารามิเตอร์ที่สองของฟังก์ชัน) เป็น true ความยาวของ buffer จะถูกบวกเข้ากับตัวแปร 'cnt' มิฉะนั้นจะปิดไฟล์และคืนค่า 'cnt' ท้ายที่สุดฟังก์ชันคืนค่า 'status'