လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> File Shards များကိုတင်သောအခါ Shards အရေအတွက်ကိုတွက်ချက်ရန် Ceil () function ကိုမည်သို့အသုံးပြုရမည်နည်း။

File Shards များကိုတင်သောအခါ Shards အရေအတွက်ကိုတွက်ချက်ရန် Ceil () function ကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-06-23

ဖိုင်များသည်ကြီးမားသောဖိုင်များကိုတင်ခြင်း၏လုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်သည့်အခါဖိုင်ပြတ်သည့်နည်းစနစ်ဖြစ်သည်။ ၎င်းသည်စူပါကြီးအမြောက်အများကိုသေးငယ်သောအပိုင်းအစများအဖြစ်ခွဲထားပြီးတင်ဆက်မှုနှင့်အောင်မြင်မှုနှုန်းကိုတိုးတက်စေရန်နှင့် Breakpoint Cruntination ကိုတိုးတက်စေရန်အတွက်တစ်ခုအားဖြင့်တင်ဆက်နိုင်သည်။

PHP တွင် CEIL သည် SHARD Upload ၏တွက်ချက်မှုတွင်အရေးကြီးသောအခန်းကဏ် plays မှပါ 0 င်သည်။ ဖိုင်တစ်ခုတင်ရန်လိုအပ်သော shards အရေအတွက်ကိုတွက်ချက်ရန် CEILI () ကို မည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးကဤဆောင်းပါးသည်အသေးစိတ်ရှင်းပြပါလိမ့်မည်။

1 ။ ceil () function ကဘာလဲ?

CEIL () သည် PHP တွင်ပါ 0 င်သောသင်္ချာဆိုင်ရာလုပ်ဆောင်မှုဖြစ်သည်။ တစ်နည်းပြောရလျှင်, ဒ decimal မသည်မည်မျှပင်ဖြစ်ပါစေ၎င်းတို့သည်၎င်းကိုအသေးငယ်ဆုံးကိန်းသို့သယ်ဆောင်သွားမည်ဖြစ်သည်။

 echo ceil(2.1); // ထုတ်လုပ်ခြင်း 3
echo ceil(5.9); // ထုတ်လုပ်ခြင်း 6

2 ။ Shards အရေအတွက်ကိုဘယ်လိုတွက်ချက်ရမလဲ။

$ funfeize bytes အရွယ်အစားရှိသောဖိုင်တစ်ဖိုင်နှင့်အချပ်တစ်ချက်လျှင်ဖိုင်ငယ်များဖြင့်ဖိုင်တစ်ခုတင်လိုသည်ဆိုပါစို့။ စုစုပေါင်း Shards အရေအတွက်ကိုအောက်ပါပုံသေနည်းဖြင့်တွက်ချက်နိုင်သည်။

 Shards အရေအတွက် = အထက်သို့ ( ဖိုင်အရွယ်အစား / shards အရွယ်အစား )

ဤသည် ceil () function ကို၏အတိအကျရည်ရွယ်ချက်ဖြစ်ပါတယ်။

3 ။ အမှန်တကယ်ကုဒ်နမူနာများ

ဖိုင်တင်ခြင်းဖိုင်မည်မျှရှိသည်ကိုတွက်ချက်ရန်ရိုးရှင်းသော PHP Code Snippet သည်။

 <?php
$fileSize = 10485760; // ဖိုင်အရွယ်အစား为 10MB(တခု:ဒရယ်)
$chunkSize = 1048576; // တစ်ခုချင်းစီကိုအပိုင်းအစ 1MB

$totalChunks = ceil($fileSize / $chunkSize);

echo "upload လုပ်ခံရဖို့ shards စုစုပေါင်းအရေအတွက်ဖြစ်ပါတယ်: $totalChunks";
?>

output ကိုဖြစ်လိမ့်မည်:

 upload လုပ်ခံရဖို့ shards စုစုပေါင်းအရေအတွက်ဖြစ်ပါတယ်: 10

ဆိုလိုသည်မှာ 10MB ဖိုင်များ, 1MB Piet ကို 1MB (10 ချက်) အတိအကျလိုအပ်သည်။

4 ။ Shard Upload အတွက်ရှေ့တန်းနှင့်နောက်ခံအဆုံးကိုပေါင်းစပ်ပါ

ရှေ့ဆုံးအဆုံးသည် Set Shard Size ကို Javascript မှတစ်ဆင့် Set Shard Size အရသိရသည်။ တစ်ကြိမ်တွင်တစ်ကြိမ်တိုင်တင်သည့်အခါတိုင်းများသောအားဖြင့်အောက်ပါ parameters များနှင့်အတူပါရှိသည်။

  • လက်ရှိ Shard ၏အညွှန်းကိန်း (ဥပမာ - chunk 1, chunk 2)

  • တစ်ခုချင်းစီကိုအပိုင်းအစ၏အရွယ်အစား

  • ( MD5 သို့မဟုတ် UUID ကို သုံးခြင်းကဲ့သို့သောထူးခြားသောအမှတ်အသားဖိုင်ကိုဖိုင်တင်ပါ)

Backend (PHP ကိုအသုံးပြုခြင်း) သည် Shard တစ်ခုစီကိုလက်ခံပြီး Shards အားလုံး upload လုပ်သည်အထိ၎င်းကိုခေတ္တသိုလှောင်ထားပြီး,

 <?php
$index = $_POST['chunkIndex']; // လက်ရှိ Shard အညွှန်းကိန်း
$total = $_POST['totalChunks']; // shards စုစုပေါင်းအရေအတွက်
$fileId = $_POST['fileId']; // ထူးခြားသောအမှတ်အသားဖိုင်
$chunk = $_FILES['file']['tmp_name'];

$chunkDir = __DIR__ . "/chunks/$fileId";
if (!is_dir($chunkDir)) {
    mkdir($chunkDir, 0777, true);
}

move_uploaded_file($chunk, "$chunkDir/chunk_$index");

if ($index == $total - 1) {
    // အားလုံး shards uploaded ပါပြီ,ပေါင်းစည်းစတင်ပါ
    $finalFile = fopen(__DIR__ . "/uploads/$fileId", 'ab');
    for ($i = 0; $i < $total; $i++) {
        $chunkPath = "$chunkDir/chunk_$i";
        fwrite($finalFile, file_get_contents($chunkPath));
    }
    fclose($finalFile);

    // ယာယီ Shards ကိုဖျက်ပစ်ပါ
    array_map('unlink', glob("$chunkDir/*"));
    rmdir($chunkDir);

    echo "ဖိုင်တင်ခြင်းနှင့်အောင်မြင်စွာပေါင်းစည်းပါ!";
}
?>

5 ။ အမှန်တကယ်အခြေအနေများအတွက်လျှောက်လွှာအကြံပြုချက်များ

အမှန်တကယ်ဖြန့်ကျက်မှုတွင် https://upload.m66.net ကဲ့သို့သောလွတ်လပ်သော 0 န်ဆောင်မှုဒိုမိန်းအမည်တွင် upload interface ကိုဖြန့်ဖြူးပေးနိုင်သည်။

Front-end upload တောင်းဆိုမှုဥပမာ:

 fetch('https://upload.m66.net/upload.php', {
    method: 'POST',
    body: formData
});

Backend PHP မျက်နှာပြင်သည် Sundil () သည် တင်သည့်သတင်းအချက်အလက်ကိုအတည်ပြုရန် SHINTION သတင်းအချက်အလက်များကို အခြေခံ. ခေါ်ဆိုနိုင်သည့်သတင်းအချက်အလက်များကိုပြုလုပ်နိုင်သည်။

 $expectedChunks = ceil($fileSize / $chunkSize);
if ($uploadedChunks == $expectedChunks) {
    // ဖိုင်များကိုပေါင်းစည်းပါ
}

6 ။ နိဂုံးချုပ်

CEILI () function ကိုအသုံးပြုခြင်းသည် Shard Upload ရှိ Shards အရေအတွက်ကိုရေတွက်ခြင်း၏ပြ problem နာကိုအလွယ်တကူကိုင်တွယ်နိုင်သည်။ PHP ၏ built-in function များကို အသုံးပြု. ဖိုင်တွဲလုပ်ငန်းလည်ပတ်မှုများကိုဆင်ခြင်တုံတရားဖြင့်အသုံးပြုခြင်းဖြင့်ကြီးမားသောဖိုင်များအားအလျင်အမြန်ဖြည့်စွက်ခြင်းနှင့်ပေါင်းစည်းခြင်းများကိုထိထိရောက်ရောက်။ သင်ဖိုင်သိုလှောင်မှုစနစ်တစ်ခုကိုတည်ဆောက်နေသည်ဖြစ်စေ,