File Upload သည် Web Development တွင်ဘုံစစ်ဆင်ရေးတစ်ခုဖြစ်သည်။ PHP တွင်ဖိုင်များမှတင်ထားသောဒေတာအမျိုးအစားများကိုထုတ်ယူခြင်းနှင့်ဆွဲယူခြင်းတို့တွင်အဓိကအယူအဆများနှင့်လုပ်ဆောင်ချက်များပါ 0 င်သည်။ ဤဆောင်းပါးသည် PHP တွင်တင်ထားသောဒေတာအမျိုးအစားများဖိုင်များကိုမည်သို့မှန်ကန်စွာစီမံခန့်ခွဲရန်နှင့်စီမံခန့်ခွဲရမည်ကိုရှင်းပြပါလိမ့်မည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဖိုင်အမည်, ဖိုင်အမျိုးအစား, ဖိုင်အရွယ်အစားစသဖြင့်ဖိုင်များတင်ခြင်းနှင့်သက်ဆိုင်သောအချက်အလက်များနှင့်သက်ဆိုင်သောသတင်းအချက်အလက်များကို HTTP Post Method မှလွဲ. ဖိုင်များကိုသိမ်းဆည်းရန်အသုံးပြုသည်။ တင်ထားသောဖိုင်အချက်အလက်ကိုမည်သို့ရယူရမည်ကိုနမူနာကုဒ်တစ်ခုဖြစ်သည်။
// ဖိုင်များကိုတင်ခြင်းနှင့်ပတ်သက်သောသတင်းအချက်အလက်များကိုရယူပါ
$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
$fileSize = $_FILES['file']['size'];
$fileTemp = $_FILES['file']['tmp_name'];
Upload ဖိုင်ကိုမလုပ်ဆောင်မီဖိုင်၏တရားဝင်မှုနှင့်လုံခြုံရေးကိုသေချာစေရန်ဖိုင်ကိုစစ်ဆေးရန်လိုအပ်သည်။ ဤတွင်အချို့သောဘုံဖိုင်အတည်ပြုခြင်းစစ်ဆင်ရေးများမှာ -
// ဖိုင်အမျိုးအစားကိုစစ်ဆေးပါ
$allowedTypes = ['image/png', 'image/jpeg', 'image/gif'];
if (!in_array($fileType, $allowedTypes)) {
echo "တင်ပါးသာခွင့်ပြုထားသည်PNG、JPEGနှင့်GIFစာချုပ်စာတမ်း";
exit;
}
// 验证စာချုပ်စာတမ်း大小
$maxSize = 2 * 1024 * 1024; // 2MB
if ($fileSize > $maxSize) {
echo "စာချုပ်စာတမ်း过大,အများဆုံးသာခွင့်ပြု2MB";
exit;
}
// 验证စာချုပ်စာတမ်း是否上传成功
if (!is_uploaded_file($fileTemp)) {
echo "စာချုပ်စာတမ်း上传失败";
exit;
}
အတည်ပြုပြီးသည်နှင့်ကျွန်ုပ်တို့သည် Upload ဖိုင်ကိုဆာဗာပေါ်ရှိ ဦး တည်ရာတည်နေရာသို့သိမ်းဆည်းနိုင်သည်။ ဤတွင်နမူနာကုဒ်ဖြစ်သည်။
// ပစ်မှတ်သိုလှောင်မှုတည်နေရာကိုသတ်မှတ်ပါ
$targetDirectory = "uploads/";
$targetFile = $targetDirectory . $fileName;
// 将စာချုပ်စာတမ်း保存到目标位置
if (move_uploaded_file($fileTemp, $targetFile)) {
echo "စာချုပ်စာတမ်း上传成功";
} else {
echo "စာချုပ်စာတမ်း保存失败";
}
ဖိုင်တင်ခြင်းပြီးဆုံးသွားသောအခါကျွန်ုပ်တို့သည်ဖိုင်၏ရေလမ်းကြောင်းများကိုပြန်လည်နာမကျန်းခြင်း, နမူနာစည်းမျဉ်းအချို့ရှိပါသည်။
// စာချုပ်စာတမ်း重命名
$newFileName = "new_file_name.jpg";
if (rename($targetFile, $targetDirectory . $newFileName)) {
echo "စာချုပ်စာတမ်း重命名成功";
} else {
echo "စာချုပ်စာတမ်း重命名失败";
}
// စာချုပ်စာတမ်း裁剪
$width = 200;
$height = 200;
$newFile = "cropped_image.jpg";
$image = imagecreatefromjpeg($targetFile);
$croppedImage = imagecrop($image, ['x' => 0, 'y' => 0, 'width' => $width, 'height' => $height]);
if ($croppedImage !== false && imagejpeg($croppedImage, $targetDirectory . $newFile)) {
echo "စာချုပ်စာတမ်း裁剪成功";
} else {
echo "စာချုပ်စာတမ်း裁剪失败";
}
// ပုံနှင့်အတူပုံရိပ်
$watermark = imagecreatefrompng("watermark.png");
$transparent = imagecolorallocatealpha($watermark, 0, 0, 0, 0);
imagefill($watermark, 0, 0, $transparent);
imagecolortransparent($watermark, $transparent);
imagettftext($watermark, 36, 0, 10, 40, imagecolorallocate($watermark, 255, 255, 255), "font.ttf", "Watermark");
imagecopymerge($image, $watermark, 0, 0, 0, 0, imagesx($watermark), imagesy($watermark), 50);
imagejpeg($image, $targetDirectory . "watermarked_image.jpg");
imagedestroy($image);
imagedestroy($watermark);
အထက်ပါနမူနာကုဒ်မှတဆင့် PHP တွင်တင်ထားသောဖိုင်အမျိုးအစားများကိုမည်သို့လုပ်ဆောင်ရမည်ကိုကျွန်ုပ်တို့နားလည်နိုင်သည်။ ဖိုင်သတင်းအချက်အလက်ရယူခြင်းမှဖိုင်များနှင့်အခြားဖိုင်အမျိုးအစားများကိုသိမ်းဆည်းရန်ဖိုင်တရားဝင်မှုကိုအတည်ပြုခြင်းမှဤအဆင့်များသည်ဖိုင်တင်ခြင်းလုပ်ငန်းစဉ်၏မရှိမဖြစ်လိုအပ်သောအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ အမှန်မှာ, အမှန်တကယ် applications များအနေဖြင့်ဖိုင်များကိုစစ်ထုတ်ခြင်းနှင့်ဖိုင် extensions များကိုစစ်ဆေးခြင်း, ဖိုင် extensions များကိုစစ်ဆေးခြင်း, ဖိုင်များနှင့်အသုံးပြုသူများ၏အချက်အလက်များအားကာကွယ်ရန်အတွက်ဖိုင်များတင်ခြင်း၏လုံခြုံရေးကိုကျွန်ုပ်တို့ဂရုပြုရန်လိုအပ်သည်။