လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Finfo ကိုအသုံးပြုပြီးဖိုင်အချက်အလက်ကိုဖတ်ရန်မှန်ကန်သောနည်းလမ်း

Finfo ကိုအသုံးပြုပြီးဖိုင်အချက်အလက်ကိုဖတ်ရန်မှန်ကန်သောနည်းလမ်း

gitbox 2025-05-29

PHP တွင် Finfo သည် MIME အမျိုးအစား, encoding စသဖြင့် MESTA အချက်အလက်များစသည်တို့ကိုရယူရန်အလွန်လက်တွေ့ကျသော extension တစ်ခုဖြစ်သည်။ ရိုးရာ Mime_Content_type () function ကိုနှိုင်းယှဉ်လျှင် Finfo သည် ပိုမိုတိကျပြီးပြောင်းလွယ်ပြင်လွယ်ရှိသောလုပ်ဆောင်မှုများကိုပေးသည်။ Finfo ၏မှန်ကန်သောအသုံးပြုမှုသည်ဖိုင်အမျိုးအစားအသွင်အပြင်ကိုထိရောက်စွာကာကွယ်နိုင်ပြီးဖိုင်အမျိုးအစားအပြောင်းအလဲအတွက်လုံခြုံရေးကိုတိုးတက်စေသည်။ ဤဆောင်းပါးသည် finfo နှင့်ဘုံကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန်မှန်ကန်သောနည်းလမ်းများစွာကိုအသေးစိတ်ဖော်ပြထားသည်။

1 ။ MIME အမျိုးအစား၏အခြေခံအသုံးပြုမှုကိုရရှိရန် Finfo ကိုသုံးပါ

အသုံးအများဆုံးအသုံးပြုမှုမှာ MIME အမျိုးအစားကိုရယူရန်ဖြစ်သည်။ ဥပမာအားဖြင့်တင်ထားသောဖိုင်သည်ပုံသို့မဟုတ် PDF တစ်ခုဖြစ်သည်ဖြစ်စေဆုံးဖြတ်ခြင်းကဲ့သို့သောဖိုင်အမျိုးအစားကိုရယူရန်ဖြစ်သည်။

 <?php
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file('/path/to/file.pdf');
echo $mimeType;

အထက်ပါကုဒ်တွင် Fileinfo_Mime_Type က Finfo ကဤကဲ့သို့သော MIMF အမျိုးအစား / PDF သို့မဟုတ် Image / JPEG တို့ဖြစ်သည်ဟုဆိုသည်။ ၎င်းသည်ဖိုင်အမျိုးအစားများကိုတရားစီရင်ရန်စံသတ်မှတ်ချက်ဖြစ်သည်။

2 ။ string ကိုမှ MIME အမျိုးအစားကိုရယူပါ

တစ်ခါတစ်ရံဖိုင်၏အကြောင်းအရာများကို disk ပေါ်တွင်သိမ်းဆည်းထားခြင်းမရှိသော်လည်း API မှတင်ခြင်းကဲ့သို့သော variable များကိုဖြတ်သန်းသွားသည်။ သငျသညျ finfo_buffer နည်းလမ်းကိုသုံးနိုင်သည်:

 <?php
$finfo = new finfo(FILEINFO_MIME_TYPE);
$data = file_get_contents('https://gitbox.net/sample.png');
$mimeType = $finfo->buffer($data);
echo $mimeType;

ဤနည်းလမ်းသည် streaming data သို့မဟုတ် remote crawling အကြောင်းအရာကိုပြုပြင်ရန်အတွက်သင့်လျော်သည်။

3 ။ ဖိုင်တင်ခြင်းနှင့်ပေါင်းစပ်ခြင်းဖြင့်လုပ်ဆောင်ခြင်း

Finfo ၏ပုံမှန် application file upload တွင် file contpload file content သည် extension နှင့်ကိုက်ညီမှုရှိမရှိကိုစစ်ဆေးရန်ဆိုသည်မှာဓာတ်ပုံများအနေဖြင့်အန္တရာယ်ရှိသော script ဖိုင်များကိုတင်ခြင်းမှကာကွယ်ပေးသည်။

 <?php
if ($_FILES['upload']['error'] === UPLOAD_ERR_OK) {
    $finfo = new finfo(FILEINFO_MIME_TYPE);
    $mimeType = $finfo->file($_FILES['upload']['tmp_name']);
    
    $allowedTypes = [
        'image/jpeg' => 'jpg',
        'image/png'  => 'png',
        'application/pdf' => 'pdf',
    ];
    
    if (!array_key_exists($mimeType, $allowedTypes)) {
        die('မထောက်ခံဖိုင်အမျိုးအစားများ。');
    }
    
    $ext = $allowedTypes[$mimeType];
    move_uploaded_file($_FILES['upload']['tmp_name'], "/uploads/file.$ext");
}

Finfo နှင့် Preset Whitelist မှ MIME အမျိုးအစားကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်တရားမ 0 င်ဖိုင်တင်ခြင်းကိုထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။

4 ။ ကြိုတင်ကာကွယ်မှုများနှင့်ဘုံပြ issues နာများ

1 ။ အမျိုးအစားကိုဆုံးဖြတ်ရန် extension ကိုအားမထားပါနှင့်

ဖိုင် extension များကိုအလွယ်တကူဖြည့်ဆည်းပေးနိုင်သည်။ အမှန်တကယ်အကြောင်းအရာကို Finfo ကို အမြဲတမ်းစစ်ဆေးသင့်သည်။

2 ။ Fileinfo extension ကို Enable လုပ်ပါ

PHP ပတ် 0 န်းကျင်အဟောင်းများအဟောင်းများ အဟောင်းများဖိုင် တွဲမရှိပါ။ Phpinfo () သို့မဟုတ် extension_loaded ('fileinfo') ဖြင့်စစ်ဆေးနိုင်သည်။

 <?php
if (!extension_loaded('fileinfo')) {
    die('fileinfo extension ကိုဖွင့်မရပါ');
}

3 ။ ဖိုင်လမ်းကြောင်းနှင့်ခွင့်ပြုချက်ပြ issues နာများ

Finfo-> File () ဖိုင်သည်ဖိုင်ကိုတည်ရှိပြီးခွင့် ပြု ချက်များကိုဖတ်ရန်လိုအပ်သည်

5 ။ အဆင့်မြင့်သုံးစွဲမှု: အသေးစိတ် MIME ဖော်ပြချက်ကိုရယူပါ

fileinfo_mime_type အပြင် fileinfo_mime ကို သင် အသုံးပြု. encoding format ကဲ့သို့သောအသေးစိတ်အချက်အလက်များကိုရယူရန်လည်းအသုံးပြုနိုင်သည်။

 <?php
$finfo = new finfo(FILEINFO_MIME);
$info = $finfo->file('/path/to/file.txt');
echo $info; // ဥပမာအားဖြင့် text/plain; charset=us-ascii

ဘာသာစကားမျိုးစုံစာရွက်စာတမ်းများသို့မဟုတ် encoding ပြောင်းလဲခြင်းများနှင့်ဆက်ဆံရာတွင်ဤချဉ်းကပ်မှုသည်အထူးသဖြင့်အသုံးဝင်သည်။

6 ။ အကျဉ်းချုပ်

Finfo ကို အသုံးပြုခြင်းသည် PHP ရှိဖိုင်အမျိုးအစားများကိုဖော်ထုတ်ရန်အလုံခြုံဆုံးနှင့်ယုံကြည်စိတ်ချရသောနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ ဖိုင်အတည်ပြုခြင်း, ဝေးလံခေါင်သီသောဒေတာခွဲခြမ်းစိတ်ဖြာခြင်းသို့မဟုတ် system အလိုအလျောက်လုပ်ငန်းတာဝန်များကိုတင်ခြင်း, Finfo ကို အသုံးပြု. စနစ်တကျပြုလုပ်ခြင်းသည်အလွယ်တကူတည်ငြိမ်မှုနှင့်လုံခြုံမှုကိုပြုလုပ်နိုင်သည်ဖြစ်စေ, FileNFO extension ကိုသေချာစွာသေချာစွာလုပ်ပါ။ ပိုမိုကြံ့ခိုင်သောဖိုင်အမျိုးမျိုးလုပ်ဆောင်မှုလုပ်ငန်းစဉ်ကိုတည်ဆောက်ရန် MITEW WHITELED တရားစီရင်ခြင်းဖြင့်ပြုလုပ်ပါ။