PHP တွင် FPASSTHRU function သည်ဓာတ်ပုံများ, ဗွီဒီယိုများကိုဒေါင်းလုတ်လုပ်ခြင်း, ကူးယူခြင်းများကိုတိုက်ရိုက်ထုတ်ယူခြင်းမပြုဘဲဖိုင်များကိုဖြည့်ဆည်းခြင်းနှင့်မှတ်ဥာဏ်များချွေတာခြင်းနှင့်မှတ်ဉာဏ်ဖြည့်တင်းခြင်းနှင့်မှတ်ဉာဏ်ရေဖြည့်တင်းခြင်းများကိုထိရောက်စွာလွှဲပြောင်းနိုင်သည်။
ဤဆောင်းပါးသည် FPASSTHRU function ကို အသုံးပြု. File streaming ကိုအကောင်အထည်ဖော်ရန်မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။
FPASSTHRU သည် PHP file operty တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီး function သည်ဖိုင်အဆုံးအထိလက်ရှိဖိုင် pointer အနေအထားမှ output ကိုထုတ်လုပ်ရန်ဖြစ်သည်။ ၎င်းကို fopen နှင့် တွဲဖက်. အသုံးပြုလေ့ရှိသည်။ ဖိုင်ကိုဖွင့်ပြီးနောက်ဖိုင်အကြောင်းအရာများသည် browser ကိုတိုက်ရိုက်ထုတ်ပေးသည်။
function ရှေ့ပြေးပုံစံ:
int fpassthru ( resource $handle )
$ လက်ကိုင် သည် fopen မှပြန်လာသောဖိုင်ညှိုးနွယ်အရင်းအမြစ်ဖြစ်သည်။
ပြန်လာတန်ဖိုးသည် bytes output ၏နံပါတ်ဖြစ်သည်။
ဖိုင်ကူးယူသည့် interface ကိုဖိုင်
ရုပ်ပုံသို့မဟုတ်ဗီဒီယိုစီးဆင်းမှု output
ဖိုင်များကို client သို့ပို့ရန်လိုအပ်သည့်မည်သည့်မြင်ကွင်းကိုမဆို
ဖိုင်ကိုဖွင့်ပြီး <br> FOPEN () ဖိုင်ကို binary mode တွင်ဖွင့်ရန်ဖိုင်ကို binary mode တွင်ဖွင့်ရန်အသုံးပြုပါ။
မှန်ကန်သော http header ကိုပို့ပါ ဖိုင်အမျိုးအစား (ဒေါင်းလုပ်လုပ်ထားသည့်ဖိုင်များ) နှင့်အညီ သက်ဆိုင်ရာ အကြောင်းအရာအမျိုးအစား ,
FPASSTHRU ကို output file stream သို့ခေါ်ဆိုပါ ဖိုင်အကြောင်းအရာကို client သို့တိုက်ရိုက်တင်ပို့ပါ။
File ResourceS <br> <br> အရင်းအမြစ်ယိုစိမ့်မှုကိုရှောင်ရှားရန်အရင်းအမြစ်များကိုလွှတ်ပေးရန်။
<?php
// ဖိုင်လမ်းကြောင်း
$filePath = '/path/to/your/file.zip';
// ဖိုင်တည်ရှိရှိမရှိဆုံးဖြတ်ရန်
if (!file_exists($filePath)) {
header("HTTP/1.1 404 Not Found");
exit("File not found.");
}
// ဖိုင်ကိုဖွင့်ပါ
$fp = fopen($filePath, 'rb');
if (!$fp) {
header("HTTP/1.1 500 Internal Server Error");
exit("Failed to open file.");
}
// ဖိုင်အရွယ်အစားကိုရယူပါ
$fileSize = filesize($filePath);
// တည်ဆောက်သည် HTTP ဉီးခေါင်း,browser ဖိုင်အမျိုးအစားနှင့်အရွယ်အစားကိုပြောပြပါ
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filePath) . '"');
header('Content-Length: ' . $fileSize);
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Expires: 0');
// အသုံးပြု fpassthru output ဖိုင်အကြောင်းအရာ
fpassthru($fp);
// File အရင်းအမြစ်များကိုပိတ်ပါ
fclose($fp);
exit;
?>
FOPEN ($ filepathath, rb ') - ဖိုင်ကို binary read-in-by mode တွင်ဖွင့်ပါ။
HTTP header သည် browser သည်ဖိုင်အမျိုးအစားနှင့်အရွယ်အစားကိုအသိအမှတ်ပြုသည် ။
FPASSTHRU ($ FP) သည် အချက်အလက်အားလုံးကိုဖိုင်၏အဆုံးမှဖိုင်၏အဆုံးမှအချက်အလက်အားလုံးကိုတိုက်ရိုက်ထုတ်ယူလိမ့်မည်။
ဖိုင်လက်ကိုင်ကိုပိတ်ပြီးမလိုအပ်သောအကြောင်းအရာများသည် output ကိုသေချာစေရန်ထွက်ရန်ထွက်ပါ။
အကယ်. ဖိုင်သည်ကြီးမားပါက FPASSTHRU သည် ဖိုင်များကိုမှတ်ဉာဏ်သို့မဖတ်နိုင်သောကြောင့်၎င်းကိုလွှဲပြောင်းရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။
ဖိုင်ကိုမှန်ကန်စွာကိုင်တွယ်ရန်သေချာစေရန်မပြောင်းမီသင့်လျော်သော http header ကိုသေချာစွာပေးပို့ပါ။
အကယ်. ဖိုင်လမ်းကြောင်းမှဖိုင်လမ်းကြောင်းမှဆင်းသက်လာပါကလမ်းကြောင်းဖြတ်ကူးစသည့်လုံခြုံရေးအန္တရာယ်များကိုကာကွယ်ရန်လုံခြုံရေးစစ်ဆေးမှုကိုသေချာအောင်လုပ်ပါ။
Breakpoint စဉ်ဆက်မပြတ်ထုတ်လွှင့်ရန်အထောက်အကူပြုသောလိုအပ်ချက်များအတွက်နောက်ထပ် http_range header လိုအပ်ကြောင်းနှင့်ဤဆောင်းပါးသည်အသေးစိတ်ရှင်းပြမည်မဟုတ်ပါ။
အထက်ပါအဆင့်များမှတစ်ဆင့် PHP ၏ FPASSTHRU function ကိုအလွယ်တကူအသုံးပြုနိုင်သည်။ ၎င်းသည် File download လုပ်ခြင်းနှင့်မီဒီယာ output အခြေအနေများအတွက်သင့်တော်သည်။
File Download interface သို့မဟုတ်မီဒီယာ streaming 0 န်ဆောင်မှုတစ်ခုတည်ဆောက်ရန်လိုအပ်ပါက FPASSTHRU ကို သင်ကြိုးစားကြည့်နိုင်သည်။