0 က်ဘ်အပလီကေးရှင်းများကိုတီထွင်သောအခါဖိုင်တင်ခြင်းသည်ဘုံလိုအပ်ချက်တစ်ခုဖြစ်သည်။ သို့သော်ဤလုပ်ငန်းစဉ်ကို upload အရွယ်အစားကန့်သတ်ချက်များ, ရှေ့နောက်မညီမဟုတ်သောပုံစံများ, အသုံးပြုသူအတွေ့အကြုံနှင့်ပရိုဂရမ်တည်ငြိမ်မှုတိုးတက်စေရန် developer များသည်ဤအမှားအယွင်းများကိုစနစ်တကျကိုင်တွယ်ရန်နှင့်တိကျသောအချက်ပြများဖြင့်အသုံးပြုသူများကိုတိကျသောအချက်ပေးမှုများပေးရန်လိုအပ်သည်။
ပထမ ဦး စွာတင်စကားကို upload တောင်းဆိုမှုများကိုငြင်းပယ်ခြင်းအားဖြင့်ဆာဗာကိုတိုက်ရိုက်ငြင်းပယ်ရန် PHPP.ini တွင် upload နှင့်သက်ဆိုင်သည့်သတ်မှတ်ချက်များကို PHPP.ini တွင်ပြုပြင်သင့်သည်။
upload_max_filesize = 2M ; တင်ထားသောဖိုင်၏အမြင့်ဆုံးအရွယ်အစား,ပုံမှန်ဖြစ်ပါတယ်2M
post_max_size = 8M ; POSTတောင်းဆိုမှုကိုအားဖြင့်သယ်ဆောင်နိုင်သည့်ဒေတာစုစုပေါင်းပမာဏ,ပုံမှန်ဖြစ်ပါတယ်8M
ဤ parameters တွေကိုပြုပြင်ပြီးနောက်ဝက်ဘ်ဝန်ဆောင်မှုကိုပြန်လည်စတင်ရန်မမေ့ပါနှင့်။
ဤတွင် PHP Code Signer ကို upload အမှားအယွင်းများကိုကိုင်တွယ်သော PHP Code Signs သည်အမှားအယွင်းအပေါ် အခြေခံ. ရှင်းလင်းပြတ်သားစွာအချက်ပေးသတင်းအချက်အလက်များကိုပြန်လည်ရရှိစေသည်။
<?php
// ဖိုင်တင်ခြင်းသည်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($_FILES['file']['error'] !== UPLOAD_ERR_OK) {
// အမှားကိုင်တွယ်ပုံကိုတင်ပါ
switch ($_FILES['file']['error']) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$errMsg = 'ဖိုင်အရွယ်အစားကန့်သတ်ထက်ကျော်လွန်!';
break;
case UPLOAD_ERR_PARTIAL:
$errMsg = 'တစ်စိတ်တစ်ပိုင်းဖိုင်များသာတင်ထားသည်!';
break;
case UPLOAD_ERR_NO_FILE:
$errMsg = 'ဖိုင်များမတင်ထားပါ!';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$errMsg = 'ယာယီဖိုင်တွဲမရှိပါ!';
break;
case UPLOAD_ERR_CANT_WRITE:
$errMsg = 'ဖိုင်အရေးအသားမအောင်မြင်ပါ!';
break;
case UPLOAD_ERR_EXTENSION:
$errMsg = 'ဖိုင်တင်ခြင်းကိုတိုးချဲ့ခြင်းဖြင့်ပိတ်ဆို့ထားသည်!';
break;
default:
$errMsg = 'အမည်မသိအမှား!';
break;
}
echo $errMsg;
exit;
}
// ဖိုင်အရွယ်အစားကိုစစ်ဆေးပါ
if ($_FILES['file']['size'] > 2 * 1024 * 1024) {
echo 'ဖိုင်အရွယ်အစားကန့်သတ်ထက်ကျော်လွန်!';
exit;
}
// ဖိုင်အမျိုးအစားကိုစစ်ဆေးပါ
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
echo 'ဖိုင်အမျိုးအစားကိုခွင့်မပြုပါ!';
exit;
}
// အောင်မြင်စွာဖိုင်တင်ပါ,နောက်ဆက်တွဲစစ်ဆင်ရေးလုပ်ဆောင်ပါ
// ...
?>
အထက်ဖော်ပြပါဥပမာတွင်ဖိုင်ကိုတင်သောအခါရှင်းလင်းပြတ်သားသောအမှားသတင်းစကားကိုချက်ချင်းပြန်ပို့ပေးမည့်ခြွင်းချက်များပေါ်ပေါက်လာသည်။ ၎င်းသည်သုံးစွဲသူအတွေ့အကြုံကိုတိုးတက်စေရန်အထူးအရေးကြီးသည်။ သုံးစွဲသူများစိတ်ရှုပ်ထွေးမှုများကိုရှောင်ရှားရန်တရားဝင်စီမံကိန်းများရှိရှေ့တန်းအပြန်အလှန်ဆက်သွယ်မှု၏ယုတ္တိဗေဒကိုအပြည်ပြည်ဆိုင်ရာအမှားများကိုလှုံ့ဆော်ရန်သို့မဟုတ်စည်းလုံးညီညွတ်စေရန်အကြံပြုသည်။
တရားဝင်ဖြန့်ကျက်ခြင်းမပြုမီဖိုင်တင်ထားသောပစ်မှတ်ထားသည့်နေရာသည်သင့်လျော်သောစာရေးခွင့်ခွင့်ပြုထားကြောင်းသေချာစေရန်လိုအပ်သည်။ ဒီလိုမှမဟုတ်ရင် code ကိုယုတ္တိရှိရင်တောင်မှဒီဖိုင်ကိုသိမ်းဆည်းထားမှာမဟုတ်ဘူး။
PHP parameters များကိုပြင်ဆင်ခြင်းနှင့်တိကျသောအမှားအယွင်းများကိုပေါင်းစပ်ခြင်းအားဖြင့် upload လုပ်ငန်းစဉ်အတွင်းမမျှော်လင့်သောအခြေအနေများဖြစ်သောမမျှော်လင့်သောအခြေအနေများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ ရှင်းလင်းသောနှင့်ဖော်ရွေသောအမှားများကိုသတင်းပို့ခြင်းသတင်းအချက်အလက်များကိုအသုံးပြုသူများအားအသုံးပြုသူစိတ်ကျေနပ်မှုကိုတိုးတက်စေရုံသာမက developer များသည်ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိရန်ကူညီသည်။