ဖိုင်တင်ခြင်းသည် Web application အများစုတွင်ဘုံအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ ဖိုင်ကြီးများသို့မဟုတ်အသုံးပြုသူများကိုတစ်ပြိုင်နက်တည်းတင်ထားသောအသုံးပြုသူများနှင့်သက်ဆိုင်သောအခါ, ဖိုင်များကိုတစ်ပြိုင်နက်တည်းတင်ခြင်းဖြင့်ဖိုင်တင်ခြင်း function သည်ဝက်ဘ်ဆိုက်စွမ်းဆောင်ရည်တွင်ပိတ်ဆို့မှုတစ်ခုဖြစ်လာနိုင်သည်။ ဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုကောင်းမွန်စေရန်ဝက်ဘ်ဆိုက်၏ 0 င်ရောက်မှုမြန်နှုန်းကိုမည်သို့တိုးတက်အောင်လုပ်ရမည်ကိုဤဆောင်းပါးတွင်လေ့လာပါမည်။
ပုံမှန်အားဖြင့် PHP ၏ File Upload အရွယ်အစားကို Upload_Max_Filedeze နှင့် Post_Max_Size configurations and post_max_size configuration items ဖြင့်ကန့်သတ်ထားသည်။ အကယ်. သင်၏လျှောက်လွှာသည်ဖိုင်ကြီးများအပ်လုဒ်ကိုထောက်ပံ့ရန်လိုအပ်ပါကအမှန်တကယ်အခြေအနေများအရဤ configuration ပစ္စည်းများ၏တန်ဖိုးများကိုသင်ညှိနိုင်သည်။ ဥပမာအားဖြင့်, Upload_Max_FILESESES ကို 100 မီတာနှင့် POST_MAX_Size မှ 120 မီတာအထိထားပါ။ မှတ်ဥာဏ်မလုံလောက်မှုကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားနေစဉ်သင်၏လျှောက်လွှာသည်သင့်လျှောက်လွှာကိုပိုမိုကြီးမားသောဖိုင်များရရှိနိုင်မည်ဖြစ်သည်။
File Chunked Upload သည်ကြီးမားသောဖိုင်များကိုသေးငယ်သောအပိုင်းပိုင်း ခွဲ. ၎င်းကိုတစ်ခုဖြင့်တင်ခြင်းနည်းလမ်းဖြစ်သည်။ ဤချဉ်းကပ်မှုသည် upload အမြန်နှုန်းများတိုးမြှင့်နေစဉ်မှတ်ဉာဏ်ခြေရာနှင့်ကွန်ယက်ဝန်များကိုသိသိသာသာလျှော့ချနိုင်သည်။ PHP ကို အသုံးပြု. CHIFED UPLOAD ဖိုင်ကိုအကောင်အထည်ဖော်ရန်အောက်ပါအတိုင်းအောက်ပါအတိုင်းဖြစ်သည်။
<?php $targetDir = "uploads/"; $chunkSize = 2 * 1024 * 1024; // 2MB $fileName = $_REQUEST["name"]; $chunkIndex = intval($_REQUEST["chunk"]); $chunksCount = intval($_REQUEST["chunks"]); $file = $_FILES["file"]["tmp_name"]; if (!file_exists($targetDir)) { mkdir($targetDir, 0755, true); } $targetPath = $targetDir . $fileName; if ($chunkIndex === 0) { move_uploaded_file($file, $targetPath); } else { file_put_contents($targetPath, file_get_contents($file), FILE_APPEND); } if ($chunkIndex === $chunksCount - 1) { echo "အောင်မြင်စွာဖိုင်တင်ပါ!"; } ?>
အထက်ပါကုဒ်များတွင်ဖိုင်ကြီးများကို 2MB ၏ယူနစ်များဖြင့်ခွဲထားပြီး၎င်းတို့ကိုဆာဗာတစ်ခု၏သတ်မှတ်ထားသော directory သို့ upload ပြုလုပ်သည်။ နောက်ဆုံးအပိုင်းအစကိုတင်ပြီးသည့်နောက်တွင်ကျွန်ုပ်တို့သည်ဖိုင်ပေါင်းစည်းခြင်းသို့မဟုတ်အခြားလုပ်ဆောင်မှုဆိုင်ရာယုတ္တိဗေဒကိုလုပ်ဆောင်နိုင်သည်။
သင့်လျော်သောသိုလှောင်ရေးအင်ဂျင်ကိုရွေးချယ်ခြင်းသည် File uploads ၏စွမ်းဆောင်ရည်ကိုအလွန်အရေးကြီးသည်။ ဖိုင်ငယ်များအတွက်ဖိုင်များကို file system တွင်တိုက်ရိုက်သိမ်းဆည်းနိုင်သည်။ ကြီးမားသောဖိုင်များအတွက်ဖိုင်များ (အမေဇုံ S3 သို့မဟုတ် Alibaba Closss Osss) ဖိုင်များကိုသိမ်းဆည်းရန်ဖိုင်များကိုသိမ်းဆည်းရန်အကြံပြုသည်။
Disk Operations သည် File Upload တွင်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုဖြစ်ပေါ်စေနိုင်သည့်အဓိကအချက်ဖြစ်သည်။ မကြာခဏ disk ဖတ်ပြီးရေးခြင်းစစ်ဆင်ရေးများသည် upload မြန်နှုန်းကိုနှေးကွေးစေလိမ့်မည်။ ဤအရာကိုပိုမိုကောင်းမွန်စေရန်ကျွန်ုပ်တို့သည်မှတ်ဉာဏ်တွင်ကြားသောကြားခံများကိုအသုံးပြုခြင်းအားဖြင့် disk operations အရေအတွက်ကိုလျှော့ချနိုင်သည်။ ဒီနေရာမှာ disk operations ကိုလျှော့ချဖို့ Buffers ကိုအသုံးပြုတဲ့နမူနာကုဒ်တစ်ခုပါ။
<?php $targetDir = "uploads/"; $fileName = $_FILES["file"]["name"]; $file = $_FILES["file"]["tmp_name"]; if (!file_exists($targetDir)) { mkdir($targetDir, 0755, true); } $targetPath = $targetDir . $fileName; $bufferSize = 8192; // 8KB $handle = fopen($file, "rb"); $buffer = ''; while (!feof($handle)) { $buffer = fread($handle, $bufferSize); file_put_contents($targetPath, $buffer, FILE_APPEND); } fclose($handle); echo "အောင်မြင်စွာဖိုင်တင်ပါ!"; ?>
ဤကုဒ်တွင် 8KB အရွယ်ရှိ Buffer ကို အသုံးပြု. File Contents ကိုကြားခံထဲသို့ဖတ်ပြီး Target File တစ်ခုသို့ရေးပါ။ ၎င်းသည် disk operations အရေအတွက်ကိုလျော့နည်းစေပြီး upload မြန်နှုန်းမြင့်တက်လာသည်။
ဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုကောင်းမွန်စေရန်ကျွန်ုပ်တို့၏ 0 က်ဘ်ဆိုက်၏ 0 င်ပိုင်ခွင့်နှုန်းကိုတိုးတက်စေနိုင်သည်။ Upload ဖိုင်အရွယ်အစားကန့်သတ်ချက်ကိုတိုးမြှင့်ခြင်းမှ file chunking uploads များကိုရွေးချယ်ခြင်းသည် disk operations အရေအတွက်ကိုလျှော့ချရန်မှန်ကန်သောသိုလှောင်မှုအင်ဂျင်ကိုလျှော့ချရန်မှန်ကန်သောသိုလှောင်ရေးအင်ဂျင်ကိုရွေးချယ်ခြင်းသည်သင်၏ဖိုင်တင်ခြင်းလုပ်ဆောင်မှုကိုပိုမိုထိရောက်စွာထိရောက်စွာအသုံးပြုနိုင်သည်။ ဤဆောင်းပါးတွင်မိတ်ဆက်ခြင်းသည်သင့်အားပိုမိုကောင်းမွန်သောဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုကောင်းမွန်စေရန်နှင့် 0 ဘ်ဆိုဒ်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်ကူညီပေးနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။