ကွန်ယက်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူအသုံးပြုသူများသည်ဗီဒီယိုဖိုင်များကို upload တင်ရန်နှင့်သိမ်းဆည်းရန်လိုအပ်သည်။ သို့သော်ဗွီဒီယိုဖိုင်များတင်ခြင်းနှင့်သိမ်းဆည်းခြင်းတို့တွင်လုံခြုံရေးပြ issues နာများစွာပါ 0 င်သည်။ ထို့ကြောင့်သူတို့ကိုကျိုးကြောင်းဆီလျော်စွာကိုင်တွယ်ရမည်။ Web Development တွင်အသုံးပြုသော scripting language တစ်ခုအနေဖြင့် PHP သည် File Upload နှင့်သိုလှောင်မှုကိုကိုင်တွယ်ရန်အစွမ်းထက်သောလုပ်ဆောင်မှုများကိုပေးသည်။ ဤဆောင်းပါးသည်ဗီဒီယိုဖိုင်ဖိုင်များကိုလုံခြုံစွာတင်ရန်နှင့်သိမ်းဆည်းရန် PHP ကိုမည်သို့အသုံးပြုရမည်,
ပထမ ဦး စွာကျွန်ုပ်တို့သည်တင်ထားသောဗွီဒီယိုဖိုင်များကိုလုံခြုံသော directory တစ်ခုတွင်သိမ်းဆည်းထားကြောင်းသေချာသင့်သည်။ ၎င်းကိုအောက်ပါအဆင့်များမှတဆင့်အောင်မြင်နိုင်သည်။
က) အသုံးပြုသူမှတင်ထားသောဗွီဒီယိုဖိုင်များကိုသိမ်းဆည်းရန်လမ်းညွှန်အသစ်တစ်ခုကိုဖန်တီးပါ။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် "uploads" ဟုခေါ်သောလမ်းညွှန်တစ်ခုဖန်တီးနိုင်သည်။
$uploadDir = 'uploads/';
if (!file_exists($uploadDir)) {
mkdir($uploadDir, 0777, true);
}
(ခ) ခွင့်ပြုထားသောအသုံးပြုသူများသာလမ်းညွှန်ကိုရယူနိုင်ရန်အတွက်ဤလမ်းညွှန်အတွက်ခွင့်ပြုချက်များကိုသတ်မှတ်ပါ။ directory permissions များကိုသတ်မှတ်ရန် chmod function ကိုသုံးနိုင်သည်။
chmod($uploadDir, 0777);
အသုံးပြုသူများသည်ဗီဒီယိုဖိုင်များကို upload မလုပ်မီကျွန်ုပ်တို့သည်မထောက်ခံသောသို့မဟုတ်အန္တရာယ်ရှိသောဖိုင်များကိုတင်ခြင်းကိုကာကွယ်ရန်ဖိုင်၏သမာဓိနှင့်အမျိုးအစားကိုစစ်ဆေးသင့်သည်။
က) ဖိုင်ကိုအောင်မြင်စွာတင်ရန်သေချာစေရန်ဖိုင်များကိုတင်ခြင်းနှင့်ပတ်သက်သောသတင်းအချက်အလက်များကိုရယူပါ။
if (!empty($_FILES['video']['tmp_name'])) {
$video = $_FILES['video']['tmp_name'];
if (!is_uploaded_file($video)) {
echo "ဖိုင်တင်ခြင်းမအောင်မြင်ပါ!";
exit;
}
} else {
echo "ကျေးဇူးပြု. ဖိုင်တစ်ခုရွေးပါ!";
exit;
}
ခ) တင်ထားသောဖိုင်အမျိုးအစားကိုစစ်ဆေးပါ။ MIME အမျိုးအစားကိုရရှိရန်နှင့်ခွင့်ပြုထားသောအမျိုးအစားများနှင့်နှိုင်းယှဉ်နိုင်သည်။
$fileType = mime_content_type($video);
$allowedTypes = array('video/mp4', 'video/mpeg', 'video/avi');
if (!in_array($fileType, $allowedTypes)) {
echo "မထောက်ခံဖိုင်အမျိုးအစားများ!";
exit;
}
ဖိုင်အတည်ပြုချက်သည်အောင်မြင်သောအခါကျွန်ုပ်တို့သည်ဖိုင်ကိုပစ်မှတ်လမ်းညွှန်သို့ ရွှေ့ပြောင်း. ဖိုင်အမည်၏ထူးခြားမှုကိုသေချာစေနိုင်သည်။ ဒီမှာကုဒ်ဥပမာတစ်ခုပါ။
$fileName = uniqid() . '.' . pathinfo($_FILES['video']['name'], PATHINFO_EXTENSION);
$targetFile = $uploadDir . $fileName;
if (move_uploaded_file($video, $targetFile)) {
echo "အောင်မြင်စွာဖိုင်တင်ပါ!";
} else {
echo "ဖိုင်တင်ခြင်းမအောင်မြင်ပါ!";
exit;
}
ဗွီဒီယိုဖိုင်များကိုသိမ်းဆည်းသောအခါလုံခြုံရေးပြ issues နာအချို့ကိုကျွန်ုပ်တို့စဉ်းစားရန်လိုအပ်သည်။
က) သိုလှောင်ထားသောစတိုးဆိုင်ဖိုင်များ၏လမ်းကြောင်းနှင့်အမည်ကိုအသုံးပြုသူနှင့်တိုက်ရိုက်ထိတွေ့သင့်သည်။ ဖိုင်များနှင့်သက်ဆိုင်သောအချက်အလက်များနှင့်သက်ဆိုင်သောအချက်အလက်များကိုသိမ်းဆည်းရန်နှင့်ဖိုင်တစ်ခုစီကိုစီမံခန့်ခွဲရန်ဖိုင်တစ်ခုစီအတွက်ထူးခြားသောအမှတ်အသားကိုထုတ်လုပ်ရန်ဒေတာဘေ့စ်ကိုသင်အသုံးပြုနိုင်သည်။
(ခ) တင်ထားသောဖိုင်များကိုဝင်ရောက်ခွင့်သေချာစေရန်။ သင်သည် .htaccess ဖိုင်ကိုသုံးနိုင်သည်သို့မဟုတ်ခွင့်ပြုချက်မရှိဘဲအသုံးပြုသူများကိုဖိုင်များကိုတိုက်ရိုက် 0 င်ရောက်ခြင်းမှကာကွယ်ရန်ဆာဗာကို configure လုပ်ပါ။
ဂ) သိုလှောင်ထားသောဗွီဒီယိုဖိုင်များကိုပုံမှန်စစ်ဆေး။ သန့်ရှင်းပါ။ အသုံးပြုမှုမရှိတော့သည့်ဗွီဒီယိုဖိုင်များကို disk s ကိုသိမ်းဆည်းရန်ပုံမှန်သန့်ရှင်းရေးပြုလုပ်နိုင်သည်။
ကျိုးကြောင်းဆီလျော်သောဖိုင်တင်ခြင်းနှင့်သိုလှောင်မှုအပြောင်းအလဲများကိုဖြင့် PHP ၏လုံခြုံရေးကိုဗီဒီယိုဖိုင်များသိမ်းဆည်းခြင်းနှင့်သိမ်းဆည်းခြင်းများကိုသေချာစေရန်ကျွန်ုပ်တို့သေချာစေနိုင်သည်။ ဤဆောင်းပါးသည်တင်ထားသောလမ်းညွှန်၏လုံခြုံရေးကိုမည်သို့သေချာစေရမည်ကိုမိတ်ဆက်ပေးသည်။ တင်ထားသောဖိုင်များ၏သမာဓိနှင့်အမျိုးအစားကိုစစ်ဆေးပါ, ဖိုင်များကိုပစ်မှတ်ထားသည့်နေရာသို့ရွှေ့ပါ။ စာဖတ်သူများသည်ဤအဆင့်များနှင့်သင်္ကေတများအပေါ် အခြေခံ. ကိုယ်ပိုင်ဗွီဒီယိုတင်ခြင်းနှင့်သိုလှောင်နိုင်စွမ်းများကိုတီထွင်နိုင်သည်။