လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> server flip function ကိုနားလည်သဘောပေါက်ရန် browser upload interface နှင့်အတူပေါင်းစပ်

server flip function ကိုနားလည်သဘောပေါက်ရန် browser upload interface နှင့်အတူပေါင်းစပ်

M66 2025-06-05

နိဒါန်း

ခေတ်သစ်ဝက်ဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ပုံရိပ်ထုတ်ယူခြင်းသည်မကြာခဏမလွှဲမရှောင်သာဖြစ်နေသည်။ အချို့သောသီးခြား application တစ်ခုအတွက်အသုံးပြုသူမှတင်ထားသောပုံများသည်လည်ပတ်မှု, လှန်ခြင်းစသည်တို့ကိုပြုလုပ်ရန်လိုအပ် နိုင်သည် ။ ဤဆောင်းပါးသည် Image Flip function ကိုအကောင်အထည်ဖော်ရန် PHP ၏ Imerfflip function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသရန် browser ၏ File Upload interface ကိုပေါင်းစပ်ပါလိမ့်မည်။

သဘာဝပတ်ဝန်းကျင်ပြင်ဆင်မှု

ပထမ ဦး စွာသင်၏ PHP ပတ်ဝန်းကျင်တွင် GD Image processing library ကိုတပ်ဆင်ထားကြောင်းသေချာစေရန်လိုအပ်သည်။ GD သည် PHP တွင်အသုံးပြုသောပုံရိပ်ထုတ်ယူခြင်းတိုးချဲ့ခြင်းဖြစ်သည်။ ၎င်းသည်ပုံအရွယ်အစားညှိနှိုင်းမှု, သီးနှံရိတ်သိမ်းခြင်း, အရောင်ထုတ်လုပ်ခြင်းနှင့်လည်ပတ်လုပ်ငန်းများကိုကိုင်တွယ်ရန်ကူညီနိုင်သည်။ သင်၏ PHP ပတ် 0 န်းကျင်တွင် GD စာကြည့်တိုက်တပ်ဆင်ထားပါက၎င်းကိုအောက်ပါ command မှတဆင့် install လုပ်နိုင်သည်။

 sudo apt-get install php-gd

install လုပ်ပြီးနောက် Php.ini ဖိုင်တွင် GD extension ကိုဖွင့်ထားကြောင်းသေချာပါစေ။

Browser ဖိုင်တင်ခြင်းမျက်နှာပြင်

အသုံးပြုသူများကိုဖိုင်များကို upload လုပ်ရန်ခွင့်ပြုသည့်ရှေ့ဆုံးမျက်နှာပြင်လိုအပ်သည်။ ဖိုင်တင်ခြင်းများကို HTML ပုံစံများနှင့် input tags များဖြင့်အလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ ဤတွင်အခြေခံ Upload ပုံစံဖြစ်သည်။

 <!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ပုံကိုတင်ပြီးလှန်လိုက်ပါ</title>
</head>
<body>
    <h1>ပုံကိုတင်ပြီးလှန်လိုက်ပါ</h1>
    <form action="upload.php" method="POST" enctype="multipart/form-data">
        <label for="image">ပုံကိုရွေးချယ်ပါ:</label>
        <input type="file" name="image" id="image" accept="image/*" required>
        <button type="submit" name="submit">တင်နှင့်လှန်</button>
    </form>
</body>
</html>

ဤပုံစံသည်အသုံးပြုသူအားပုံတစ်ပုံကိုရွေးချယ်ပြီး upload လုပ်ပြီး၎င်းကို PHP ဖိုင်ကို Upload အမည်ရှိ PHP ဖိုင်သို့တင်သွင်းလိမ့်မည်။

PHP သည် File Upload ကိုကိုင်တွယ်ခြင်းနှင့်ပုံဖော်ဓာတ်ပုံများကိုအကောင်အထည်ဖော်

Upload.php တွင်တင်ထားသောဖိုင်ကိုတင်ရန်လိုအပ်ပြီး PHP ၏ Impfflip function ကိုအသုံးပြုရန်လိုအပ်သည်။ ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
// ဖိုင်များတင်ခြင်းရှိမရှိစစ်ဆေးပါ
if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
    // ဖိုင်အချက်အလက်ရယူပါ
    $fileTmpPath = $_FILES['image']['tmp_name'];
    $fileName = $_FILES['image']['name'];
    $fileSize = $_FILES['image']['size'];
    $fileType = $_FILES['image']['type'];
    
    // ဖိုင်အမျိုးအစားသည်ပုံတစ်ပုံကိုအတည်ပြုပါ
    $allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
    if (!in_array($fileType, $allowedTypes)) {
        echo "တင်ပါးသာခွင့်ပြုထားသည် JPG, PNG, GIF format နဲ့ image file";
        exit;
    }

    // အသုံးပြု PHP ၏ GD စာကြည့်တိုက်ကိုရေးဆွဲခြင်းပုံများ
    $imageResource = imagecreatefromstring(file_get_contents($fileTmpPath));
    
    // ပုံရိပ်အရင်းအမြစ်ကိုအောင်မြင်စွာဖန်တီးနိုင်မလားဆိုတာဆုံးဖြတ်ပါ
    if ($imageResource === false) {
        echo "无法处理上传၏图片";
        exit;
    }

    // အသုံးပြု imageflip function ကိုပုံရိပ်လှန်
    $flipResult = imageflip($imageResource, IMG_FLIP_HORIZONTAL); // အလျားလိုက်လှန်
    // 或者အသုံးပြု IMG_FLIP_VERTICAL ဒေါင်လိုက်လှန်အောင်မြင်ရန်
    if ($flipResult) {
        // 保存翻转后၏图片
        $newFileName = 'flipped_' . $fileName;
        $newFilePath = 'uploads/' . $newFileName;

        // ဖိုင်အမျိုးအစားအရဓာတ်ပုံများကိုသိမ်းဆည်းပါ
        switch ($fileType) {
            case 'image/jpeg':
                imagejpeg($imageResource, $newFilePath);
                break;
            case 'image/png':
                imagepng($imageResource, $newFilePath);
                break;
            case 'image/gif':
                imagegif($imageResource, $newFilePath);
                break;
        }

        // မှတ်ဉာဏ်သန့်ရှင်းရေး
        imagedestroy($imageResource);

        echo "ပုံကိုအောင်မြင်စွာလှန်လိုက်ပြီးကယ်တင်ခြင်းသို့ရောက်ပြီ!<br>";
        echo "翻转后၏图片: <a href='$newFilePath' target='_blank'>ရုပ်ပုံများကိုကြည့်ပါ</a>";
    } else {
        echo "ပုံရိပ်လှန်မအောင်မြင်ပါ";
    }
} else {
    echo "ကျေးဇူးပြု. ပုံကိုအရင်တင်ပါ";
}
?>

code parsing

  1. ဖိုင်တင်ချောင်းအသစ်ပြုပြင်ခြင်း - တင်ထားသောဖိုင်များကိုလုပ်ဆောင်ရန်ကျွန်ုပ်တို့သည် $ _files hyperglobal array ကိုအသုံးပြုသည်။ ဖိုင်တည်ရှိခြင်းနှင့်ဖိုင်အမျိုးအစားသည်တရား 0 င်ရှိမရှိစစ်ဆေးပါ။

  2. image Resource Creation : upload ဖိုင်များအပေါ် အခြေခံ. ပုံရိပ်အရင်းအမြစ်များကိုဖန်တီးရန် imagecreatchrophromrophrophromrophrophromrophromrophromrophromrophrophromrophromrophrophromrophromrophromrophromrophromrophromrophromrophromrophromrophromrophromrophromrophromrophromrophromrophstromrophromrophromrophstromrophromrophromrophromrophstromrophromrophromrophstromrophstrechromomrophstrickfrophstromrophromrophstrechrict function ကိုသုံးပါ။ အကယ်. ပုံကိုမဖန်တီးနိုင်ပါက (ဥပမာအားဖြင့်ဖိုင်သည်အကျင့်ပျက်သို့မဟုတ်အမျိုးအစားကိုမထောက်ပံ့ပါ။

  3. Image Flip : ImageFlip function ကိုသုံးပါ။ Img_flip_Horizontal သည် hemg_flip_horizontal သည်အလျားလိုက်လှန်လှောင်ထားသည့်အလျားလိုက်လှန်လှောင်ထားရန်ဖြစ်သည်။

  4. Flipped Image ကို သိမ်း ပါ

  5. Saving Path : ဖိုင်ကိုဆာဗာ၏ uploads ဖိုင်တွဲတွင်သိမ်းဆည်းထားလိမ့်မည်။

မှတ်သားရန်အရာ

  • ဖိုင်တင်ခြင်းလုံခြုံရေး - ဖိုင်များကိုတင်ခြင်းလုံခြုံရေးနှင့်အန္တရာယ်ရှိသောဖိုင်များကိုတင်ခြင်းကိုရှောင်ပါ။ တင်ထားသောဖိုင်များ၏အရွယ်အစားကိုသင်ကန့်သတ်ပြီးဖိုင်အမျိုးအစားကိုအတည်ပြုနိုင်သည်။

  • အမှားကိုင်တွယ်ခြင်း - အသုံးပြုသူအတွေ့အကြုံကိုသေချာစေရန် Upload နှင့်ပုံရိပ်ပြုပြင်ခြင်းကိုကိုင်တွယ်ရန်အလုံအလောက်အမှားကိုင်တွယ်ရန်ကိုင်တွယ်ခြင်း။

  • ခွင့်ပြုချက်ဆက်တင်များ - အပ်လုဒ် ဖိုင်တွဲတွင်ဖိုင်ကိုသိမ်းဆည်းရန်လုံလောက်သောခွင့်ပြုချက်ရှိကြောင်းသေချာပါစေ။

အကျဉ်းချုပ်

အထက်ပါအဆင့်များမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ရိုးရှင်းသော upload တစ်ခုကိုအကောင်အထည်ဖော်ပြီး Image function ကိုလှန်လိုက်ပါ။ အသုံးပြုသူသည်ပုံကို browser မှတစ်ဆင့်တင်သည်။ PHP သည်ဆာဗာဘက်တွင်ပုံကိုလှန်လှောကြည့်ရှုရန် Impflip function ကို အသုံးပြု. အသုံးပြုသူအားပုံရိပ်ကိုပြန်ပို့သည်။ ဤဖြစ်စဉ်သည်အမှန်တကယ်ဝက်ဘ်စီမံကိန်းများတွင်အလွန်လက်တွေ့ကျသည့်နောက်ခံပုံရိပ်ထုတ်ယူခြင်းနှင့်အတူရှေ့ပြေးဖိုင်တင်ခြင်းကိုမည်သို့ပြုလုပ်ရမည်ကိုပြသသည်။