Web Development တွင်ဖိုင်တင်ခြင်းနှင့်ဒေါင်းလုပ်လုပ်ခြင်းနှင့်ဒေါင်းလုပ်များသည်ပုံမှန်လည်ပတ်မှုဆိုင်ရာ module များဖြစ်သည်။ သို့သော်အသုံးပြုသူ input နှင့် output ကိုတင်းကြပ်စွာထိန်းချုပ်ထားခြင်းမရှိပါကတိုက်ခိုက်မှုများအတွက် entry point ဖြစ်လာရန်လွယ်ကူသည်။ ဤဆောင်းပါးသည် PHP ဘာသာစကားကိုအာရုံစိုက်ပြီးဖိုင်တင်ခြင်းနှင့်ဒေါင်းလုပ်လုပ်ခြင်းအတွင်းလုံခြုံရေးကိုထိရောက်စွာထိန်းချုပ်ရန်အသုံးပြုသူ input နှင့် output function များကိုအသုံးပြုနည်းကိုမိတ်ဆက်ပေးလိမ့်မည်။
upload တောင်းဆိုမှုမလုပ်ဆောင်မီပထမအဆင့်မှာဖိုင်အမျိုးအစားကိုအတည်ပြုရန်ဖြစ်သည်။ များသောအားဖြင့်ဖိုင် extension များနှင့် MIME အမျိုးအစားများကိုနှစ် ဦး သုံးသိရခြင်းဖြင့်ပြုလုပ်နိုင်သည်။
$allowedExtensions = ['jpg', 'png', 'gif'];
$allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];
$uploadedFileExtension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
$uploadedFileType = $_FILES['file']['type'];
if (!in_array($uploadedFileExtension, $allowedExtensions) ||
!in_array($uploadedFileType, $allowedMimeTypes)) {
// တရားမဝင်ဖိုင်အမျိုးအစား,အပြောင်းအလဲနဲ့ယုတ္တိဗေဒလုပ်ဆောင်ပါ
}
အန္တရာယ်ရှိသောဇာတ်ညွှန်းနှင့်လမ်းကြောင်းကို overwrite overwrite ကိုတားဆီးရန်အတွက်အသုံးပြုသူများကတင်ထားသောဖိုင်များကိုအလိုအလျောက်အမည်ပြောင်းစေရန်အလိုအလျောက်အမည်ပြောင်းစေရန်အကြံပြုလိုပါသည်။
$uploadedFileName = $_FILES['file']['name'];
$uploadedFileExtension = strtolower(pathinfo($uploadedFileName, PATHINFO_EXTENSION));
$newFileName = uniqid() . '.' . $uploadedFileExtension;
$newFilePath = '/path/to/upload/directory/' . $newFileName;
if (move_uploaded_file($_FILES['file']['tmp_name'], $newFilePath)) {
// အောင်မြင်စွာဖိုင်တင်ပါ
}
extension နှင့် Mime စိစစ်အတည်ပြုခြင်းအပြင်ဖိုင်၏အမှန်တကယ်အကြောင်းအရာများကိုထပ်မံလေ့လာရန်အကြံပြုပါသည်။ ဥပမာအားဖြင့်သင်သည် Upimagesize () သို့မဟုတ်တတိယပါတီစာကြည့်တိုက်ကို သုံး. uploaded ဖိုင်သည်ပုံရိပ်အမှန်ဖြစ်ကြောင်းဆုံးဖြတ်ရန်။
$fileData = file_get_contents($_FILES['file']['tmp_name']);
if (!is_image($fileData)) {
// ဖိုင်များသည်ဓာတ်ပုံများမဟုတ်ပါ,အပြောင်းအလဲနဲ့ယုတ္တိဗေဒလုပ်ဆောင်ပါ
}
function is_image($fileData){
$allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (function_exists('mime_content_type')) {
$fileMimeType = mime_content_type($fileData);
return in_array($fileMimeType, $allowedMimeTypes);
} else {
$finfo = new finfo(FILEINFO_MIME_TYPE);
$fileMimeType = $finfo->buffer($fileData);
return in_array($fileMimeType, $allowedMimeTypes);
}
}
ဖိုင်ကိုကူးယူခြင်းယုတ္တိဗေဒကိုကူးယူခြင်းမပြုမီအသုံးပြုသူမှတောင်းခံထားသောဖိုင်သည်တည်ရှိပြီးလက်လှမ်းမီမှုအခွင့်အရေးများရှိသည်ဟုအတည်ပြုရန်လိုအပ်သည်။
$requestedFilePath = $_GET['file'];
if (!is_file($requestedFilePath) || !is_readable($requestedFilePath)) {
// ဖိုင်သည်မတည်ရှိပါသို့မဟုတ်မဖတ်နိုင်သောမရှိပါ
}
browser ကိုမတော်တဆဖြည့်ဆည်းပေးခြင်းမှကာကွယ်ခြင်းမှကာကွယ်ရန်အတွက်ဖိုင်ကူးယူရန်အတွက်လိုအပ်သော HTTP Header သတင်းအချက်အလက်များကိုသတ်မှတ်သင့်သည်။
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($requestedFilePath));
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($requestedFilePath));
readfile($requestedFilePath);
File Upload ကိုအကောင်အထည်ဖော်သည့်အခါ PHP တွင်ဒေါင်းလုပ်လုပ်ရန်နှင့် PHP တွင်ဒေါင်းလုပ်လုပ်သည့်အခါအခြေခံလုပ်ဆောင်ချက်များအပေါ်သာမှီခိုသည်။ ပိုမိုစိတ်ချရသောနှင့်လုံခြုံသောဖိုင်စီမံခန့်ခွဲမှုစနစ်ကိုဖိုင်အမျိုးအစားအတည်ပြုခြင်း, ပြန်လည်ပြုပြင်ခြင်း, လုံခြုံစိတ်ချရသောစကင်ဖတ်စစ်ဆေးမှုနှင့်ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုဒေါင်းလုပ်လုပ်ခြင်းကဲ့သို့သောနည်းလမ်းများစွာဖြင့်တည်ဆောက်ထားရမည်။ ထို့အပြင် upload file siz ကိုကန့်သတ်ရန်, တင်ပို့သည့်လမ်းညွှန်ခွင့်ပြုချက်ကိုထိန်းချုပ်ရန်နှင့်ဒေါင်းလုပ်လုပ်ခြင်းနှင့်အခြားအသေးစိတ်နည်းဗျူဟာများကိုဒေါင်းလုပ်ဆွဲရန်လည်းအကြံပြုပါသည်။