FPASSTHRU function မှတစ်ဆင့် compressed files များသို့ compressed files များသို့ပို့ရန်လက်တွေ့ကျသောနည်းလမ်းများနှင့်ကြိုတင်ကာကွယ်မှုများကဘာတွေလဲ။
gitbox
2025-09-12
<?php
// ဆောင်းပါးစတင်ခဲ့သည်
ပဲ့တင်သံ " FPASSTHRU function မှတဆင့် browser ကို browser သို့ compressed files များသို့ပို့ရန်လက်တွေ့ကျသောနည်းလမ်းများနှင့်ကြိုတင်ကာကွယ်မှုများကဘာလဲ။
" ; ပဲ့တင်သံ PHP Development တွင် download လုပ်သူများအတွက် browser (zip, gz စသည်တို့) ကို download လုပ်ခြင်းသည်ဖိုင်တစ်ခုလုံးကို Memory သို့ပို့ဆောင်ခြင်းမပြုဘဲဖိုင်များနှင့် output ကိုဖိုင်များသို့တိုက်ရိုက်ဖတ်ရန်။
" ; ပဲ့တင်သံ " 1 ။ FPASSTHRU ၏အခြေခံအသုံးပြုမှု
" ; ပဲ့တင်သံ FPASSTHRU ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
" ; ပဲ့တင်သံ "
int fpassthru (အရင်းအမြစ် \ $ လက်ကိုင်)
" ; ပဲ့တင်သံ "ဖိုင်ရဲ့အ
ဆုံး အထိဖိုင်ကိုကိုင်တွယ် ပြီးဖိုင်ကို browser သို့တိုက်ရိုက်ထုတ်ပေးသည်။
ပဲ့တင်သံ " 2 ။ browser ကို compressed files များပို့ရန်ခြေလှမ်းများ
" ; ပဲ့တင်သံ "
ပဲ့တင်သံ မှန်ကန်သော HTTP Header ကိုသတ်မှတ်ပါ - ဤသည် browser ကဒီဖိုင်ကို download ရယူရန်တောင်းဆိုချက်ကိုသိအောင်သေချာအောင်လုပ်ပါ။ " ; ပဲ့တင်သံ " ပွင့်လင်းတဲ့ဖိုင် - သင်ပို့ရန်လိုအပ်သည့် compressed file ကိုဖွင့်ရန် fopen ကို သုံးပါ။ " ; ပဲ့တင်သံ FPASSTHRU ကိုအသုံးပြုပါဖိုင်အိတ်အကြောင်းအရာများကို output လုပ်ရန် - ဖိုင်အကြောင်းအရာကို browser သို့တိုက်ရိုက်လွှဲပြောင်းပါ။ " ; ပဲ့တင်သံ " ဖိုင်ညွှန်ပြမှုကိုပိတ်ပါ။ သယံဇာတများကိုအခမဲ့ရယူပါ။ " ; ပဲ့တင်သံ " ပဲ့တင်သံ " နမူနာကုဒ်:
" ; ပဲ့တင်သံ "
\ $ file = 'applue.zip';
if (file_exists (\ $ ဖိုင်))
header ('အကြောင်းအရာ - ဖော်ပြချက် - ဖိုင်လွှဲပြောင်းခြင်း');
header ('အကြောင်းအရာအမျိုးအစား: လျှောက်လွှာ / zip');
header ('အကြောင်းအရာ - စိတ်ထား - ပူးတွဲမှု - ပူးတွဲဖိုင် = \ "\' '။ Basename (\ $ file) ။
header ('အကြောင်းအရာ - လွှဲပြောင်း-encoding: binary');
header ('အကြောင်းအရာ - အရှည်:' ။ ဖိုင် (\ $ file));
\ $ fp = fopen (\ $ ဖိုင်, 'rb');
လျှင် (\ $ FP) {
FPASSTHRU (\ $ FP);
fcose (\ $ FP);
ထွက်ပေါက်;
}
}
" ; ပဲ့တင်သံ " သုံးလက်တွေ့နည်းလမ်းများ
" ; ပဲ့တင်သံ ပဲ့တင်သံ " ကြီးမားသောဖိုင်များကိုမှတ်ဉာဏ်ထဲသို့မတင်စေရန် Readfile သို့မဟုတ် FPASSTHRU တို့ကို အသုံးပြုပါ။ " ; ပဲ့တင်သံ " ob_clean () နှင့် flush () နှင့် flush () နှင့်ပေါင်းစပ်ထားသော flacter ထုတ်လွှင့်မှုကိုသေချာစေရန် Output Buffer ကိုသန့်ရှင်းရေးလုပ်ရန်။ " ; ပဲ့တင်သံ " download အတွေ့အကြုံကိုတိုးတက်စေရန်အတွက် အကြောင်းအရာများ မှတစ်ဆင့်ကြိုတင်ဘရောက်ဇာဖိုင်အရွယ်အစားကိုကြိုတင်အကြောင်းကြားပါ။ " ; ပဲ့တင်သံ " အချိန်ကုန်ခြင်းများကိုအတုံးများဖြင့်ဖတ်နိုင်ပြီး output ကို funkout လုပ်ရန် set_time_limit (0) ကို သုံးပါ။ " ; ပဲ့တင်သံ " ပဲ့တင်သံ " IV ။ မှတ်သားရမည့်အရာများ
" ; ပဲ့တင်သံ ပဲ့တင်သံ ဖိုင်ကိုမပို့မီနေရာများနှင့် HTML တို့အပါအ 0 င် output အပါအ 0 င် output မရှိပါ။ သို့မဟုတ်လျှင် HTTP ခေါင်းစီးကျိုးပဲ့လိမ့်မည်။ " ; ပဲ့တင်သံ " zip application / zip ကို အသုံးပြုသော MIME အမျိုးအစားကိုမှန်ကန်စွာသတ်မှတ်ပါ ။ ပဲ့တင်သံ ဆာဗာခွင့်ပြုချက်များသည် PHP ကိုပစ်မှတ်ဖိုင်ကိုဖတ်ရန်ခွင့်ပြုရန်လိုအပ်သည်။ " ; ပဲ့တင်သံ " ကြီးမားသောဖိုင်များကိုဒေါင်းလုတ်လုပ်သောအခါ Bandwidth ကန့်သတ်ချက်နှင့်အချိန်ကုန်ချိန်ညှိချက်များကိုစဉ်းစားပါ။ " ; ပဲ့တင်သံ " ပဲ့တင်သံ " ငါး, အကျဉ်းချုပ်
" ; ပဲ့တင်သံ " FPASSTHRU ကိုအသုံးပြုခြင်းသည်အလွန်အကျွံမှတ်ဉာဏ်အသုံးပြုမှုကိုရှောင်ရှားရန်ဆာဗာပေါ်ရှိ compressed files များကိုထိထိရောက်ရောက်ပေးပို့နိုင်သည်။ အသုံးပြုမှုစဉ်အတွင်း http header settings, output buffer processings ကဲ့သို့သောပြ issues နာများကိုသင်အာရုံစိုက်ရန်လိုအပ်သည်။ ဤကျွမ်းကျင်မှုများကိုကျွမ်းကျင်စွာအာရုံစိုက်ရန်လိုအပ်သည်
။ // ဆောင်းပါး၏အဆုံး
>