File Upload သည် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဘုံအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ PHP ကိုယ်တိုင်သည် C ဘာသာစကားနှင့်ဆင်တူသော အဓိကလုပ်ဆောင်ချက်တစ်ခု မရှိသော်လည်းကျွန်ုပ်တို့သည် အဓိက လုပ်ဆောင်မှု၏ဖွဲ့စည်းပုံကိုတုပကာ function အတွင်းရှိဖိုင်တင်ခြင်း၏စီးပွားရေးဆိုင်ရာယုတ္တိဗေဒကိုအာရုံစူးစိုက်နိုင်ပြီး,
ဤဆောင်းပါးသည်ဖိုင်တင်ခြင်းလုပ်ငန်းများလျင်မြန်စွာနားလည်ရန်နှင့်အကောင်အထည်ဖော်ရန်အတွက်ဖြည့်စွက်ထားသောတင်သည့်လုပ်ငန်းစဉ်နှင့်နမူနာကုဒ်များအပါအ 0 င်ဖိုင်တင်ခြင်းလုပ်ငန်းများကိုဖြည့်ဆည်းရန် အဓိက လုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
ရှေ့တန်းစာမျက်နှာပေါ်ရှိ Upload ပုံစံကိုဖန်တီးခြင်း အသုံးပြုသူများသည်ဖိုင်များကို HTML ပုံစံများဖြင့်ဖိုင်များကိုရွေးချယ်ပြီးဖိုင်ကိုမှန်ကန်စွာတင်နိုင်ကြောင်းသေချာစေရန်ပုံစံ၏ Entytpe ကို သတ်မှတ်ရမည် ။
တင်ထားသောဖိုင်များကိုလက်ခံရရှိသည်
PHP သည် $ _files hyperglobal ခင်းကျင်းမှတဆင့်တင်ထားသောဖိုင်အချက်အလက်များကိုလက်ခံရရှိသည်။
အတည်ပြုဖိုင် <br> <br> ဖိုင်အမျိုးအစား, အရွယ်အစားကန့်သတ်, လုံခြုံရေးစစ်ဆေးမှုများကိုစစ်ဆေးခြင်းအပါအ 0 င်
ဖိုင်များကိုပစ်မှတ်လမ်းညွှန်သို့ရွှေ့ပါ ယာယီဖိုင်ကိုသတ်မှတ်ထားသော directory သို့ရွှေ့ရန် Move_Uploaded_File function ကိုသုံးပါ။
အပြောင်းအလဲနဲ့ရလဒ်များကိုပြန်သွားပါ အသုံးပြုသူအားအဘယ်ကြောင့် Upload သည်အဘယ်ကြောင့်အောင်မြင်သည်သို့မဟုတ်မအောင်မြင်ပါ။
များသောအားဖြင့် PHP script များတွင် အဓိက လုပ်ဆောင်ချက်မရှိပါ။ သို့သော်ကျွန်ုပ်တို့သည် အဓိက လုပ်ဆောင်မှုကိုစိတ်ကြိုက်ပြုပြင်နိုင်သည်, သို့သော် function ကိုစီးပွားရေးယုတ္တိဗေဒကိုရေးဆွဲပြီး function ကိုရေးပါ။
အောက်တွင်ပြီးပြည့်စုံသောဖိုင်တင်ခြင်းဥပမာတစ်ခုဖြစ်ပြီး အဓိက လုပ်ဆောင်မှုကို အသုံးပြု. upload စစ်ဆင်ရေးကိုမည်သို့ဖြည့်ရမည်ကိုပြသသည်။ ဥပမာတွင်အသုံးပြုသော URL domain အမည်ကို M66.NET ဖြင့်တူညီစွာအစားထိုးသည်။
<?php
function main() {
// ဖိုင်ကိုတင်ခြင်းအတွက်ပစ်မှတ်လမ်းညွှန်
$targetDir = "uploads/";
// upload လမ်းညွှန်တည်ရှိမလားစစ်ဆေးပါ,မတည်ရှိပါကဖန်တီးပါ
if (!is_dir($targetDir)) {
mkdir($targetDir, 0755, true);
}
// ဖိုင်များတင်ခြင်းရှိမရှိစစ်ဆေးပါ
if (!isset($_FILES['file'])) {
echo "တင်ထားသောဖိုင်ကိုရှာဖွေတွေ့ရှိခြင်းမရှိပါ";
return;
}
$file = $_FILES['file'];
// upload အမှားများကိုစစ်ဆေးပါ
if ($file['error'] !== UPLOAD_ERR_OK) {
echo "ဖိုင်တင်ပါးတွင်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်,အမှားကုဒ်:" . $file['error'];
return;
}
// ဖိုင်အရွယ်အစားကန့်သတ်,အများဆုံး5MB
$maxSize = 5 * 1024 * 1024;
if ($file['size'] > $maxSize) {
echo "ဖိုင်ကြီးကြီး,မကျော်လွန်လို့မရဘူး5MB";
return;
}
// ခွင့်ပြုထားသောဖိုင် extension များကိုခွင့်ပြုသည်
$allowedExt = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
$fileExt = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
if (!in_array($fileExt, $allowedExt)) {
echo "မထောက်ခံဖိုင်အမျိုးအစားများ";
return;
}
// ထူးခြားသောဖိုင်အမည်ကိုထုတ်လုပ်ပါ,ထပ်တူအမည်များကို overwriting ရှောင်ကြဉ်ပါ
$newFileName = uniqid() . "." . $fileExt;
$targetFile = $targetDir . $newFileName;
// directory ကိုပစ်မှတ်ထားရန်ယာယီဖိုင်များကိုရွှေ့ပါ
if (move_uploaded_file($file['tmp_name'], $targetFile)) {
echo "အောင်မြင်စွာဖိုင်တင်ပါ!link ကိုသွားပါ:";
echo "<a href=\"https://m66.net/" . $targetFile . "\">https://m66.net/" . $targetFile . "</a>";
} else {
echo "ဖိုင်တင်ခြင်းမအောင်မြင်ပါ,ဖိုင်ကိုရွေ့လျားသောအခါအမှားတစ်ခုဖြစ်ပွားခဲ့သည်";
}
}
// တယ်လီဖုန်းဆက်ခြင်းmainfunction execute upload ယုတ္တိဗေဒ
main();
?>
<form action="https://m66.net/upload.php" method="post" enctype="multipart/form-data">
<label for="file">File Upload ကိုရွေးချယ်ပါ:</label>
<input type="file" name="file" id="file" required>
<button type="submit">တင်ပါ</button>
</form>
အထက်ပါ PHPP ဥပမာသည်တင်ထားသောဖိုင်ကိုသိမ်းဆည်းထားသည့်လမ်းညွှန်သည် uploads / directory ကိုအလိုအလျောက်ဖန်တီးသည် (ခွင့်ပြုချက်သည် 0755) ကိုအလိုအလျောက်ဖန်တီးသည်။
Upload သည်အောင်မြင်သောအခါ, စာမျက်နှာသည် M66.net နှင့်လွယ်ကူစွာဝင်ရောက်ခွင့်အတွက်ဒိုမိန်းအမည်အဖြစ်လက်လှမ်းမီဆက်သွယ်မှုကိုထုတ်လွှင့်လိမ့်မည်။
ဘေးကင်းလုံခြုံမှုနှင့်သတ်မှတ်ချက်ကိုသေချာစေရန်ဖိုင်အရွယ်အစားနှင့်အမျိုးအစားကိုကုဒ်တွင်ကန့်သတ်ထားသည်။
အဓိက လုပ်ဆောင်ချက်ကို encapsulating အားဖြင့် Code Logic သည်ရှင်းလင်းရန်လွယ်ကူသည်။
အချုပ်အားဖြင့် PHP သည်ရိုးရာသဘောမျိုးတွင် အဓိက လုပ်ဆောင်မှုတွင်အဓိကလုပ်ဆောင်မှုမရှိပေမဲ့ အဓိက လုပ်ဆောင်မှုဖွဲ့စည်းပုံကို simulating လုပ်ခြင်းသည်ဖိုင်တင်ခြင်းကုဒ်ကို Modular နှင့် Clear ကို ပိုမို. ရှင်းလင်းစေနိုင်သည်။ ဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်ကိုကျွမ်းကျင်ပြီးကျိုးကြောင်းဆီလျော်သော function encapsulation များကိုပေါင်းစပ်ခြင်းသည်သင်၏ PHP application များကိုအားကောင်းသည့်အရာနှင့်ထိန်းသိမ်းရန်လွယ်ကူစေနိုင်သည်။