ဖွံ့ဖြိုးမှုဖြစ်စဉ်တွင်ကြီးမားသောဖိုင်များ download လုပ်ရန်လိုအပ်သည့်အခါ PHP ၏ Readfile () function ကိုအသုံးပြုခြင်းသည်ရိုးရှင်းစွာမှတ်တမ်းများကိုတိုက်ရိုက်ဖတ်ရှုခြင်းသို့မဟုတ်လုံးလုံးလျားလျားစာဖတ်ခြင်းကိုတိုက်ရိုက်ဖတ်ရှုပါလိမ့်မည်။ ထို့ကြောင့်ပရိုဂရမ်တည်ငြိမ်မှုနှင့်အသုံးပြုသူအတွေ့အကြုံများကိုသေချာစေရန်ပိုမိုထိရောက်သော download ဖြေရှင်းချက်ကိုလက်ခံရန်လိုအပ်သည်။
Breakpoint ဆက်လက်ဆက်လက်လုပ်ဆောင်နေသောအစိတ်အပိုင်းများကိုအကြိမ်ကြိမ်ဒေါင်းလုတ်လုပ်ခြင်းမရှိဘဲဒေါင်းလုပ်အနှောင့်အယှက်ဖြစ်သည့်နောက်, ၎င်းသည် bandwidth ကိုကယ်တင်ရုံသာမကအထူးသဖြင့်ကွန်ယက်ပတ် 0 န်းကျင်သည်မတည်ငြိမ်သောအခါယုံကြည်စိတ်ချရမှုနှင့်သုံးစွဲသူစိတ်ကျေနပ်မှုကိုပြုလုပ်သည်။
ပထမ ဦး စွာ, 0 န်ဆောင်မှုခံယူသူမှဖြတ်သန်းသောဖိုင် parameters များကိုရယူရန်အတွက် $ _get ကို သုံး. basename () function ကို သုံး. basename () function ကိုသုံးပါ။
$file = $_GET['file'];
$filename = basename($file);
Application / Octet-Stream သို့ အကြောင်းအရာအမျိုးအစားကို သတ်မှတ်ခြင်းဖြင့်ဤသည် browser ကို browser ကိုပြောပါ။ ပူးတွဲဖိုင်ကိုဒေါင်းလုပ်ဆွဲခြင်းနှင့်ဖိုင်အမည်ကိုညွှန်ပြရန် အကြောင်းအရာ - သဘောထား - သဘောထား ခေါင်းစီးကိုသတ်မှတ်ပါ။
Http_range ၏အဆိုအရ Download Start Leader တွင် Download Start တည်နေရာကိုခွဲခြမ်းစိတ်ဖြာခြင်းကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် Breakpoint စဉ်ဆက်မပြတ်ထုတ်လွှင့်မှုကိုရရှိရန် FESEEK () ကို အသုံးပြု. ချိန်ညှိထားသည်။
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
if (isset($_SERVER['HTTP_RANGE'])) {
$range = $_SERVER['HTTP_RANGE'];
preg_match('/bytes=(\d+)-/', $range, $matches);
$start = intval($matches[1]);
fseek($file, $start);
}
ဖိုင်အမျိုးအစားမှတစ်ဆင့် Looping လုပ်ခြင်းဖြင့်အရွယ်အစားတစ်ခုစီ၏ကြားခံ (ဥပမာ 4096 Bytes) ကြားခံတစ်ခုကိုဖတ်ပါ။ ဒေတာများကိုအချိန်မီထုတ်လွှင့်ရန်သေချာစေရန်နှင့် output buffer ကိုဖတ်ပါ။
$buffer_size = 4096;
while (!feof($file)) {
echo fread($file, $buffer_size);
ob_flush();
flush();
}
အထက်ပါနည်းလမ်းများမှတစ်ဆင့် PHP သည်ကြီးမားသောဖိုင်များ၏ breakpoints များ၏ပြတ်တောက်မှုများကိုထိရောက်စွာထောက်ခံနိုင်ပြီးရိုးရာ တဖြည်းဖြည်းဖတ်ခြင်း () function ကိုကြီးမားသောဖိုင်အမျိုးအစားများဖြင့်ဖြေရှင်းနိုင်သည်။ developer များသည်လည်း download တိုးတက်မှုပြသခြင်း, အမြန်နှုန်းကန့်သတ်ထိန်းချုပ်မှုနှင့်အခြားလုပ်ဆောင်မှုများကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။
အကွာအဝေး header နှင့် php file operty functions ကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်း HTTP protocol ၏လုပ်ဆောင်ချက်များသည် download 0 န်ဆောင်မှုကိုပိုမိုတည်ငြိမ်ပြီးပြောင်းလွယ်ပြင်လွယ်ဖြစ်စေနိုင်သည်။