Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

วิธีดาวน์โหลดไฟล์ขนาดใหญ่ผ่านสคริปต์ PHP


เพื่อดาวน์โหลดไฟล์ขนาดใหญ่ผ่านสคริปต์ 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'