လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Uploaded GD2 ဖိုင်များ - ဖိုင်စစ်ဆေးခြင်းနှင့်ပြောင်းလဲခြင်းလုပ်ငန်းစဉ်

Uploaded GD2 ဖိုင်များ - ဖိုင်စစ်ဆေးခြင်းနှင့်ပြောင်းလဲခြင်းလုပ်ငန်းစဉ်

M66 2025-05-29

PHP တွင် Imagecreat troflethrimgd2 function ကို gd2 format ဖြင့်ဖန်တီးရန်အသုံးပြုသည်။ GD2 သည် GD စာကြည့်တိုက် (ပုံရိပ်ထုတ်ယူခြင်းအတွက်စာကြည့်တိုက်) ၏ဖိုင်အမျိုးအစား (ပုံရိပ်ထုတ်ယူခြင်းစာကြည့်တိုက်) သည်ဖိုင်ပုံစံဖြစ်သည်။ ဤဆောင်းပါးသည်တင်ထားသော GD2 ဖိုင်များကိုကိုင်တွယ်ရန်နှင့်အသုံးပြုစဉ်အတွင်းကြုံတွေ့ရနိုင်သည့်ဘုံပြ problems နာများကိုဖြေရှင်းရန် စိတ်ကူးကြည့်စစ်ဆေးမှု ပုံစံစာအုပ်ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။

1 ။ ဖိုင်အတည်ပြုခြင်း

တင်ထားသောဖိုင်များကိုထုတ်ယူသောအခါဖိုင်များ၏အမျိုးအစားနှင့် format များကိုမျှော်လင့်ချက်များနှင့်အညီ ဦး စွာသေချာအောင်ပြုလုပ်ရမည်။ GD2 ဖိုင်များအတွက် uploaded file သည်မှန်ကန်သော gd2 image file တစ်ခုရှိမရှိအတည်ပြုရန်လိုအပ်သည်။ ၎င်းသည်အမှားအယွင်းများကိုရှောင်ရှားရန်သာမကစနစ်ကိုအန္တရာယ်ရှိသောဖိုင်တိုက်ခိုက်မှုများမှကာကွယ်ပေးသည်။

ဖိုင်တစ်ခုကိုတင်သည့်အခါ uploaded file ကို $ _files array မှတဆင့်ဝင်ရောက်နိုင်သည်။ ဥပမာအားဖြင့်:

 if ($_FILES['image']['error'] == UPLOAD_ERR_OK) {
    $uploadedFile = $_FILES['image']['tmp_name'];
    $fileType = mime_content_type($uploadedFile);
    
    // ဖိုင်အမျိုးအစားဟုတ်မဟုတ်စစ်ဆေးပါGD2ပမာဏ
    if ($fileType == 'image/vnd.gd2') {
        // ဖိုင်ကိုဆက်လက်လုပ်ဆောင်ပါ
    } else {
        echo "ကျေးဇူးပြု. တရားဝင်တင်ပါGD2image file!";
        exit;
    }
} else {
    echo "ဖိုင်တင်ခြင်းမအောင်မြင်ပါ!";
    exit;
}

ဤဥပမာတွင် upload သည်အောင်မြင်မှုရှိမရှိကို ဦး စွာစစ်ဆေးပြီး, ဖိုင်သည် GD2 ပုံရိပ်ပုံစံတွင်ရှိ, ရှိမရှိစစ်ဆေးရန် Mime_Content_Type function ကိုအသုံးပြုပါ။ ဖိုင်အမျိုးအစားအတည်ပြုပြီးမှသာပုံရိပ်ထုတ်ယူမှုလုပ်ငန်းများကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။

2 ။ Imagecreathretgd2 ကိုအသုံးပြုပြီးပုံများကိုတင်ခြင်း

ဖိုင်၏ပုံစံကိုကျွန်ုပ်တို့အတည်ပြုပြီးသည်နှင့်တစ်ပြိုင်နက် uploaded gd2 image file ကို load လုပ်ရန် imagecreat trefrophgd2 function ကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်မှုသည်ပုံရိပ်အရင်းအမြစ်ကိုပြန်ပို့ပေးလိမ့်မည်, ဥပမာပေါ်ရှိသီးနှံများသီးနှံများ, ကူးပြောင်းခြင်း, ပြောင်းလဲခြင်းပုံစံများစသည်တို့ကဲ့သို့နောက်ပိုင်းတွင်ပြုလုပ်နိုင်သည်။

 $image = imagecreatefromgd2($uploadedFile);

if ($image === false) {
    echo "တင်. မရပါGD2စာချုပ်စာတမ်း!";
    exit;
}

// ပြီးနောက်ပုံရိပ်ကိုအောင်မြင်စွာတင်ထားတယ်,နောက်ဆက်တွဲအပြောင်းအလဲနဲ့လုပ်ဆောင်ပါ

အကယ်. Imagecreathingdgd2 function သည်ဖိုင်ကိုဖွင့်ရန်ပျက်ကွက်ပါက၎င်းသည် မှားယွင်းစွာ ကိုင်တွယ်ရန်လိုအပ်သည်, ထို့ကြောင့်၎င်းကိုမှားယွင်းစွာကိုင်တွယ်ရန်လိုအပ်သည်။

3 ။ ပုံကိုအခြား format ဖြင့်ပြောင်းလဲပါ

စိတ်ကူးယဉ်ပုံသဏ္ဌာန် imagecreathringdgd2 function ကိုကိုယ်တိုင်မပြောင်းလဲပါ။ loaded gd2 ပုံရိပ်ကိုအခြားပုံစံများသို့ပြောင်းရန်လိုအပ်ပါက (ဥပမာ - JPEG) ကဲ့သို့သောအခြားပုံစံများသို့ပြောင်းရန်လိုအပ်ပါက imagepng , imagejpeg နှင့်အခြားလုပ်ဆောင်မှုများကိုပြောင်းလဲနိုင်သည်။

ဥပမာအားဖြင့်, loaded gd2 image ကို PNG format ဖြင့်ပြောင်းပါ။

 $pngFile = 'converted_image.png';
if (imagepng($image, $pngFile)) {
    echo "ပုံရိပ်ကိုအောင်မြင်စွာကူးပြောင်းခဲ့သည်PNGပမာဏ!";
} else {
    echo "Image Convertion မအောင်မြင်ပါ!";
}

အလားတူပင်သင်သည်၎င်းကို imagejpeg ကို အသုံးပြု. JPEG ပုံစံဖြင့်သိမ်းဆည်းနိုင်သည်သို့မဟုတ်လိုအပ်ပါကပြောင်းရန်အခြားလုပ်ဆောင်မှုများကိုသုံးနိုင်သည်။

4 ။ မကြာခဏမေးသောမေးခွန်းများ

ISEACREATGDGD2 ကို အသုံးပြုသောအခါအောက်ပါတို့တွင်ဖော်ပြထားသောဘုံပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။

ပြ issue နာ 1: GD2 ဖိုင်သည် 0 င်ရန်ပျက်ကွက်ခဲ့သည်

ပုံသည် 0 င်ရန်ပျက်ကွက်ပါကအောက်ပါအကြောင်းပြချက်များကြောင့်ဖြစ်နိုင်သည်။

  • ဖိုင်သည်မှန်ကန်သော gd2 image file မဟုတ်ပါ။

  • ဖိုင်ပျက်သွားသည်။

  • PHP တွင် GD စာကြည့်တိုက်တပ်ဆင်ထားခြင်းမရှိပါ။ သို့မဟုတ် GD စာကြည့်တိုက်သည် GD2 format ကိုမထောက်ပံ့ပါ။

ဖြေရှင်းချက် -

  • တင်ထားသောဖိုင်သည်မှန်ကန်သော gd2 ပုံရိပ်ကိုသေချာအောင်လုပ်ပါ။

  • SERVERS တွင် GD စာကြည့်တိုက်ကိုဆာဗာတွင်ဖွင့်ထားပါ။ အထူးသဖြင့် GD2 format ကိုထောက်ပံ့သောဗားရှင်းကိုဖွင့်ခြင်းရှိမရှိစစ်ဆေးပါ။ GD စာကြည့်တိုက်၏အသေးစိတ်အချက်အလက်များကို Phpinfo မှတဆင့်ကြည့်ရှုနိုင်သည်။

ပြ Proble နာ 2 - ဖိုင်အမျိုးအစားပြောင်းလဲခြင်းမအောင်မြင်ပါ

တစ်ခါတစ်ရံတွင် ImagecreathrintGDGD2 သည် ပုံကို 0 င်သည်ဆိုလျှင်ပင် format ကိုပြောင်းလဲခြင်းလုပ်ငန်းစဉ်သည်ပျက်ကွက်နေဆဲဖြစ်သည်။ ၎င်းသည်များသောအားဖြင့်ပစ်မှတ်ထားဖိုင်လမ်းကြောင်းသို့မဟုတ်ခွင့်ပြုချက်ပြ issue နာများကြောင့်ဖြစ်သည်။

ဖြေရှင်းချက် -

  • ပစ်မှတ်လမ်းကြောင်းကိုအဆင်သင့်ဖြစ်အောင်လုပ်ပြီးဖိုင်တွင်ခွင့်ပြုချက်မရှိပါ။

  • ပိုမိုသိရှိလိုပါက PHP ၏အမှားမှတ်တမ်းကိုစစ်ဆေးပါ။

ပြ issue နာ 3: မှတ်ဉာဏ်ကန့်သတ်ချက်သည်ပျက်ကွက်မှုအားပေး၏

GD2 ဖိုင်များသည်တစ်ခါတစ်ရံအလွန်ကြီးမားပြီး loading သည့်အခါမှတ်ဥာဏ်ပိုလိုအပ်သည်။ အကယ်. သင်သည်မလုံလောက်သောမှတ်ဉာဏ်နှင့်ကြုံတွေ့ရပါက PHP ၏မှတ်ဉာဏ်ကန့်သတ်ချက်ကိုတိုးမြှင့်ဖို့ကြိုးစားနိုင်သည်။

 ini_set('memory_limit', '256M'); // မှတ်ဉာဏ်ကန့်သတ်တိုးမြှင့်

မှတ်ဉာဏ်ကန့်သတ်ချက်ကိုတိုးမြှင့်ပြီးနောက်ထပ်မံကြိုးစားပါ, ၎င်းသည်များသောအားဖြင့်ဤပြ problem နာကိုဖြေရှင်းပေးသည်။

အထက်ဖော်ပြပါအချက်သည် uploaded gd2 ဖိုင်များကိုကိုင်တွယ်ရန် isaxecreat transfer ကိုအသုံးပြုခြင်းနှင့်ဘုံပြ problems နာများကိုခွဲခြမ်းစိတ်ဖြာရန်အခြေခံနည်းလမ်းဖြစ်သည်။ မှန်ကန်သောဖိုင်စစ်ဆေးခြင်း, ကျိုးကြောင်းဆီလျော်သောပုံရိပ်ပြောင်းလဲခြင်းနှင့်ပြုပြင်ခြင်းအဆင့်များနှင့်အချိန်မီအမှားစစ်ဆေးမှုများသည်သင့်အားပုံရိပ်စစ်ဆင်ရေးများကိုပိုမိုချောချောမွေ့မွေ့လုပ်ဆောင်ရန်ခွင့်ပြုနိုင်သည်။