လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MD5_File function ကိုအသုံးပြုပြီး PHP ရှိ File Uploads ၏တရားဝင်မှုကိုမည်သို့အတည်ပြုရမည်နည်း။

MD5_File function ကိုအသုံးပြုပြီး PHP ရှိ File Uploads ၏တရားဝင်မှုကိုမည်သို့အတည်ပြုရမည်နည်း။

gitbox 2025-08-23
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာများနှင့်လုံးဝမသက်ဆိုင်ပါ,သာဥပမာ display ကိုသာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်!"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># ဘယ်လိုသုံးရမလဲ md5_file function ကိုဖြစ်ပါတယ် PHP ဖိုင်တင်ခြင်း၏တရားဝင်မှုကိုစစ်ဆေးပါ?</span></span><span>

0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်,File Upload function သည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်。မည်မှျပင်,ဘေးကင်းလုံခြုံမှုကိုသေချာစေရန်,developer သည် upload လုပ်ထားသောဖိုင်များကိုစစ်ဆေးရန်လိုအပ်သည်,အန္တရာယ်ရှိတဲ့ဖိုင်တင်ခြင်းအန္တရာယ်များကိုတားဆီးပါ。PHP ဖိုင်အမျိုးအစားအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်,တွင် `md5_file` လုပ်ဆောင်ချက်များကိုရိုးရှင်းပြီးထိရောက်သောဖြစ်ကြသည်,အများအားဖြင့်ဖိုင်သမာဓိနှင့်တရား 0 င်မှုကိုအတည်ပြုရန်အသုံးပြုသည်。

</span><span><span class="hljs-comment">## ဘာလဲ md5_file လုပ်ဆောင်ချက်?</span></span><span>

`md5_file` ဟုတ်ကဲ့ PHP 内置的လုပ်ဆောင်ချက်,သတ်မှတ်ထားသောဖိုင်တွက်ချက်ရန်အသုံးပြုခဲ့သည် MD5 hash တန်ဖိုး。MD5 ဟုတ်ကဲ့一种广泛使用的哈希算法,မည်သည့်အရှည်ကိုမဆိုသတ်မှတ်ထားသောအရှည် string ကိုသင်မြေပုံဆွဲနိုင်သည်(</span><span><span class="hljs-number">32</span></span><span>hexadecimals ဇာတ်ကောင်),အများအားဖြင့်ဖိုင်သမာဓိကိုအတည်ပြုရန်အသုံးပြုသည်。

လုပ်ဆောင်ချက်原型如下:

```php
</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">md5_file</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>)
</span></span>
  • $ filename : တွက်ချက်ရန်လိုအပ်သည့်ဖိုင်လမ်းကြောင်း

  • $ binary (optional): ရလဒ်ကို binary form ကိုပြန်ပို့ဖို့လား, ပုံမှန် hexadecimal-string ကိုပြန်ပို့ပါ

File Upload ကိုအတည်ပြုရန် MD5_File ကိုအဘယ်ကြောင့်အသုံးပြုရသနည်း။

ဖိုင်တစ်ခုတင်လိုက်သောအခါတိုက်ခိုက်သူသည်မကောင်းသောကုဒ်သို့မဟုတ်ဖိုင်ကိုဖိုင်ကိုတင်နိုင်သည်။ တင်ပို့သောဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ခြင်းအားဖြင့်ကျွန်ုပ်တို့လုပ်နိုင်သည် -

  • ဖိုင်ကိုဂီယာစဉ်အတွင်းသို့မဟုတ်ပျက်စီးသွားကြောင်းစစ်ဆေးပါ

  • ဖိုင်သည်တရားဝင်ဖြစ်သည်ကိုဆုံးဖြတ်ရန်လူသိများသောဖိုင်၏ MD5 ကို MD5 တန်ဖိုးကို MD5 တန်ဖိုးကိုနှိုင်းယှဉ်ထားသည်

  • တူညီသောဖိုင်၏ထပ်ခါတလဲလဲတင်ခြင်းကိုတားဆီးပါ (cache သို့မဟုတ် deploplication အတွက်အသုံးပြုနိုင်သည်)

အကောင်အထည်ဖော်မှုအဆင့်များ

  1. အသုံးပြုသူသည်ဖိုင်ကို upload လုပ်ပြီးနောက် PHP သည်ဖိုင်ကိုယာယီလမ်းညွှန်တွင်သိုလှောင်ထားသည်။

  2. ဤယာယီဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ရန် MD5_File ကို သုံးပါ။

  3. တွက်ချက်ထားသော MD5 ကိုတရားဝင်ဖိုင် Hash တန်ဖိုးများနှင့်နှိုင်းယှဉ်ပါ။

  4. အကယ်. ၎င်းနှင့်ကိုက်ညီပါကဖိုင်သည်တရားဝင်ဖြစ်သည်။ ဒီလိုမှမဟုတ်ရင် uploading ကိုငြင်းဆန်သည်။

နမူနာကုဒ်

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ကြိုတင်သတ်မှတ်ထားသောတရားဝင်ဖိုင်ကိုယူဆပါMD5တန်ဖိုးရှိ array</span></span><span>
</span><span><span class="hljs-variable">$allowed_md5_list</span></span><span> = [
    </span><span><span class="hljs-string">'d41d8cd98f00b204e9800998ecf8427e'</span></span><span>, </span><span><span class="hljs-comment">// ဗလာဖိုင်၏ဥပမာ</span></span><span>
    </span><span><span class="hljs-string">'5d41402abc4b2a76b9719d911017c592'</span></span><span>, </span><span><span class="hljs-comment">// နမူနာMD5</span></span><span>
];

</span><span><span class="hljs-comment">// 检查文件ဟုတ်ကဲ့否上传成功</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload'</span></span><span>]) &amp;&amp; </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload'</span></span><span>][</span><span><span class="hljs-string">'error'</span></span><span>] === UPLOAD_ERR_OK) {
    </span><span><span class="hljs-variable">$tmp_file</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload'</span></span><span>][</span><span><span class="hljs-string">'tmp_name'</span></span><span>];
    
    </span><span><span class="hljs-comment">// တင်ထားသောဖိုင်ကိုတွက်ချက်ပါMD5အဘိုး</span></span><span>
    </span><span><span class="hljs-variable">$file_md5</span></span><span> = </span><span><span class="hljs-title function_ invoke__">md5_file</span></span><span>(</span><span><span class="hljs-variable">$tmp_file</span></span><span>);
    
    </span><span><span class="hljs-comment">// တရားစီရင်ချက်MD5ဟုတ်ကဲ့否在合法列表中</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">in_array</span></span><span>(</span><span><span class="hljs-variable">$file_md5</span></span><span>, </span><span><span class="hljs-variable">$allowed_md5_list</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တင်ပါ,MD5အတည်ပြုအတည်ပြု。"</span></span><span>;
        </span><span><span class="hljs-comment">// ဤတွင်သင်သည်ထိုကဲ့သို့သောသိမ်းဆည်းထားသောဖိုင်များကဲ့သို့သောနောက်ဆက်တွဲစစ်ဆင်ရေးများပြုလုပ်နိုင်သည်</span></span><span>
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တင်ခြင်းသည်တရားမ 0 င်ပါ,MD5အတည်ပြုပျက်ကွက်。"</span></span><span>;
        </span><span><span class="hljs-comment">// ဤနေရာတွင်သင်သည်ဖိုင်ကိုဖျက်ပစ်နိုင်သည်သို့မဟုတ်အမှားတစ်ခုပြန်ပို့နိုင်သည်</span></span><span>
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အဘယ်သူမျှမ upload ဖိုင်သို့မဟုတ် upload အမှားရှာဖွေတွေ့ရှိခြင်းမရှိပါ。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

မှတ်သားရန်အရာ

  • MD5 သည်တိုက်မှုအန္တရာယ်များကိုသက်သေပြခဲ့ပြီးစကားဝှက်များကဲ့သို့သောလုံခြုံရေးလိုအပ်ချက်များကိုမြင့်မားသောလုံခြုံရေးလိုအပ်ချက်များနှင့်မသင့်တော်ပါ။ သို့သော်၎င်းသည်အထူးသဖြင့်လူသိများသောဖိုင်များကိုနှိုင်းယှဉ်သောအခါဖိုင်သမာဓိစစ်ဆေးမှုများအတွက်တရားဝင်ဖြစ်သည်။

  • လုံခြုံရေးတိုးတက်စေရန်အတွက်ဖိုင်အမျိုးအစားရှာဖွေတွေ့ရှိမှု (MIE အမျိုးအစား), ဖိုင်တိုးချဲ့ခြင်း, ဖိုင်အရွယ်အစားအကန့်အသတ်များစသည်တို့ကဲ့သို့သောစိစစ်ရေးအမျိုးအစားကိုရှာဖွေခြင်းကဲ့သို့သောစိစစ်ရေးဆိုင်ရာအစီအမံများကိုပေါင်းစပ်ရန်အကြံပြုသည်။

  • လုံခြုံရေးလိုအပ်ချက်များသည်ပိုမိုမြင့်မားပါက SHA-256 ( HASH_FILE ('Sha256', $ filename) ကဲ့သို့သောလုံခြုံစိတ်ချရသောဆေးထည့်ခြင်း algorithm ကိုအသုံးပြုရန်စဉ်းစားပါ))

အကျဉ်းချုပ်

MD5_File function သည် PHP ဖိုင်တင်ခြင်းကိုလုံခြုံစိတ်ချရသောစိစစ်အတည်ပြုရန်ရိုးရှင်းသောနှင့်ထိရောက်သောနည်းလမ်းများပေးသည်။ တင်ထားသောဖိုင်၏ MD5 တန်ဖိုးကိုတွက်ချက်ခြင်းဖြင့်တရား 0 င်ဖိုင် hash တန်ဖိုးကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်တရားမ 0 င်ဖိုင်များနှင့်အတူတရားမ 0 င်ဖိုင်များအားထိရောက်စွာကာကွယ်နိုင်ပြီးဝက်ဘ်ဆိုက်လုံခြုံရေးကိုသေချာစွာကာကွယ်နိုင်သည်။ ကျိုးကြောင်းဆီလျော်စွာအခြားလုံခြုံရေးအစီအမံများကိုပေါင်းစပ်ခြင်းက File Upload Module ၏လုံခြုံရေးကိုအလွန်တိုးတက်စေလိမ့်မည်။

<hr> <? PHP // ဆောင်းပါးပြီးဆုံးသည်, မသက်ဆိုင်သော PHP Code ဥပမာ ECHO "စာဖတ်ခြင်းအတွက်ကျေးဇူးတင်ပါသည်"; >
 <span></span>