ဝက်ဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဖိုင်များ၏သမာဓိကိုစစ်ဆေးရန်နှင့်ဖိုင်ကိုကာကွယ်ရန်အတွက်အလွန်အရေးကြီးသည်။ PHP သည်တင်ထားသောဖိုင်များ၏လုံခြုံရေးနှင့်သမာဓိရှိစေရန်အသုံးပြုနိုင်သည့်အစွမ်းထက်သောဖိုင်အချို့လုပ်ဆောင်ချက်အချို့ကိုပေးသည်။ hash_update_stream function သည် hash တန်ဖိုးများကိုအချိန်နှင့်တပြေးညီ update အတွက်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ဖိုင်တစ်ခုလုံးကို memory ထဲသို့မတင်ဘဲဖိုင်များ (ဥပမာ) ဖိုင်များ (ဥပမာရုပ်ပုံများ) ဖိုင်များ (ဥပမာ) ဖိုင်များပြုပြင်ခြင်းအတွက် hash တန်ဖိုးကိုတွက်ချက်ရန်သင့်တော်သည်။
ဤဆောင်းပါးသည် Hash_update_Stream function ကို upload လုပ်ထားသောပုံများကိုပြောင်းလဲရန်နှင့်ဖိုင်အကြောင်းအရာများကိုပြုပြင်မွမ်းမံခြင်းမရှိသေးအောင်ပြုလုပ်နိုင်သည်။
ဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်အတွင်းဖိုင်ကိုအနှောင့်အယှက်မပေးနိုင်ရန်အတွက်ဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ရန် SHA-256 သို့မဟုတ် MD5 သို့မဟုတ် MD5 သို့မဟုတ် MD5 သို့မဟုတ် MD5 ကဲ့သို့သော Hash algorithm ကိုသုံးနိုင်သည်။ Hash တန်ဖိုးကို Hash တန်ဖိုးကိုမျှော်လင့်ထားသည့် hash value နှင့်ချိတ်ဆက်ထားသော Hash တန်ဖိုးကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်ဖိုင်ကိုဂီယာဖြစ်စဉ်ကာလအတွင်းဖိုင်ကိုအနှောင့်အယှက်ဖြစ်စေခြင်းရှိမရှိဆုံးဖြတ်နိုင်သည်။
hash_update_stream function သည် PHP တွင်အဆင့်မြင့်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည်ဖိုင်ကြီးတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်ခြင်းကိုရှောင်ရှားရန်အတွက်ကြီးမားသောဖိုင်များကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။
အသုံးပြုသူများကိုရုပ်ပုံများကိုတင်ရန်ခွင့်ပြုသည့် HTML ပုံစံရှိသည်ဆိုပါစို့။ ဖိုင်များကို တင်. Hash ကိုတွက်ချက်ရန် PHP ကိုအသုံးပြုပါမည်။ ဖိုင်၏အကြောင်းအရာများကိုလွှင့်ပစ်မည်ဖြစ်ပြီးတင်ပါ။
တင်ထားသောပုံရိပ်များကိုအချိန်မှန် hash စိမ့် 0 င်မှုကိုလုပ်ဆောင်ရန် hash_update_stream function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသော PHP Code နမူနာတစ်ခုရှိသည်။
<?php
// upload လမ်းညွှန်ထားပါ
$uploadDir = 'uploads/';
// ဖိုင်များတင်ခြင်းရှိမရှိစစ်ဆေးပါ
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) {
$file = $_FILES['image'];
// တင်ထားသောဖိုင်သည်ပုံတစ်ပုံကိုသေချာအောင်လုပ်ပါ
$allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (in_array($file['type'], $allowedMimeTypes)) {
// ဖိုင်ကိုယာယီလမ်းကြောင်းရယူပါ
$tempFile = $file['tmp_name'];
// ဖိုင်စီးကိုဖွင့်ပါ
$fileHandle = fopen($tempFile, 'rb');
// Hashing algorithm ကိုရွေးချယ်ပါ
$hashContext = hash_init('sha256');
// အသုံးပြုhash_update_streamဖိုင်များမှ stream hash update ကို
while ($chunk = fread($fileHandle, 8192)) {
hash_update_stream($hashContext, $chunk);
}
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$fileHash = hash_final($hashContext);
// တင်ထားသောဖိုင်၏ hash တန်ဖိုးကိုပုံနှိပ်ပါ
echo "Uploaded file hash: " . $fileHash . "<br>";
// ဖိုင်စီးကိုပိတ်ပါ
fclose($fileHandle);
// ဖိုင်ကိုပစ်မှတ်လမ်းညွှန်သို့သိမ်းဆည်းပါ
move_uploaded_file($tempFile, $uploadDir . $file['name']);
// ကျနော်တို့ဖိုင်၏ hash တန်ဖိုးကို precalulate ဆိုပါစို့
$expectedHash = 'ကြိုတင်တွက်ချက်မှု hash တန်ဖိုး';
// Hash တန်ဖိုးများကိုနှိုင်းယှဉ်
if ($fileHash === $expectedHash) {
echo "ဖိုင်အလုံအလောက် Verification ကိုအောင်မြင်စွာစစ်ဆေးပါ!";
} else {
echo "ဖိုင် hash စိပ်အသိစစ်ရေးပျက်ကွက်!";
}
} else {
echo "ပုံရိပ်ဖိုင်တင်ခြင်းကိုသာထောက်ပံ့သည်!";
}
}
?>
<!-- ပုံစံတင်ခြင်း -->
<form method="POST" enctype="multipart/form-data">
<label for="image">ဓာတ်ပုံများတင်ပါ:</label>
<input type="file" name="image" id="image">
<button type="submit">တင်ပါ</button>
</form>
File Upload ပုံစံ - ပထမ ဦး စွာကျွန်ုပ်တို့သည်အသုံးပြုသူများသည် image files များကို upload လုပ်နိုင်သော HTML ပုံစံကိုဖန်တီးခဲ့သည်။
တင်ထားသောဖိုင်အမျိုးအစားကိုစစ်ဆေးပါ ။ ဖိုင်များပြုပြင်ထုတ်လုပ်သည့်အခါတင်ထားသောဖိုင်အမျိုးအစားသည်ခွင့်ပြုထားသော image file type (ဥပမာ JPEG, PNG, GIF) ဖြစ်သည်။
Open File Flow - ဖိုင်များကို fopen function မှတဆင့် binary mode ဖြင့်တင်ထားသောယာယီဖိုင်ကိုဖွင့်ပါ။
Hash algorithm ကိုအစပြုရန် Hash algorithm: hash algorithm ကိုရွေးပါ။
Real-time update hash တန်ဖိုး - hash_update_stream function မှတဆင့်, ဖိုင် contents တွေကို block လုပ်ပြီး hash value ကိုအချိန်မှန်ကိုအသစ်ပြောင်းပါ။ အဆိုပါ free function ကိုဖိုင်ထဲမှာဒေတာ၏အစိတ်အပိုင်းတစ်ခုဖတ်ပြီး 8kb contents တွေကိုအချိန်တိုင်းဖတ်တယ်။
Hash တန်ဖိုးကိုတွက်ချက်ပါ - ဖိုင်တွဲအားလုံးဖတ်ပြီးနောက်တွင် Hash_Final function ကိုသုံးပါ။
File Save : Hash Verification ကိုအတည်ပြုပါကဖိုင်ကိုသတ်မှတ်ထားသော upload လမ်းညွှန်သို့ရွှေ့ပါ။
Hash Verification - ဖိုင်သည်တွက်ချက်ထားသည့် hash တန်ဖိုးကိုမျှော်လင့်ထားသည့် hash value နှင့်နှိုင်းယှဉ်ခြင်းအားဖြင့်ဖိုင်ကိုအနှောင့်အယှက်ဖြစ်စေခြင်းရှိမရှိကိုကျွန်ုပ်တို့အတည်ပြုသည်။
hash_update_stream function သည်ကြီးမားသောဖိုင်များပြုပြင်သည့်အခါမှတ်ဥာဏ်လျှံလျှပ်စစ်ပြ problems နာများကိုရှောင်ရှားနိုင်သည်။ ၎င်းသည်ဖိုင်ကိုစမ်းချောင်းတစ်ခုအဖြစ်ဖတ်ရှုနိုင်ပါသည်, တစ်ချိန်တည်းတွင်ဒေတာသေးသေးလေးတစ်ခု (8KB) ကိုဖတ်ပြီးဒေတာတစ်ခုစီအတွက် hash တန်ဖိုးကိုအသစ်ပြောင်းသည်။ streaming သည်အထူးသဖြင့်ကြီးမားသောဖိုင်များအတွက်အထူးသဖြင့်ကြီးမားသောဖိုင်များအတွက်သိသိသာသာလျှော့ချနိုင်သည်။
Hash_update_Stream function ကိုအသုံးပြုခြင်း File Hash Verification အတွက်အထူးသဖြင့်ကြီးမားသောဖိုင်များနှင့်ဆက်ဆံသောအခါထိရောက်သောနှင့်လုံခြုံသောနည်းလမ်းဖြစ်သည်။ ဖိုင်၏ hash တန်ဖိုးကိုအချိန်မှန်တွက်ချက်ခြင်းအားဖြင့်ဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်တွင်ဖိုင်အိတ်၏သမာဓိနှင့်လုံခြုံမှုကိုသေချာစွာဖြည့်ဆည်းပေးနိုင်ရန်တားဆီးနိုင်သည်။