လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Init function ဖြင့်ဖိုင်တင်ခြင်းပုံစံကိုစတင်ပါ

Init function ဖြင့်ဖိုင်တင်ခြင်းပုံစံကိုစတင်ပါ

gitbox 2025-05-28

PHP တွင်ဖိုင်တင်ခြင်းသည်ဘုံစစ်ဆင်ရေးဖြစ်သည်။ ဖိုင်တင်ခြင်းလုပ်ငန်းသည်ပုံမှန်အားဖြင့်လည်ပတ်ရန်သေချာစေရန်အတွက်ကျွန်ုပ်တို့သည် File Upload ကိုကျိုးကြောင်းဆီလျော်သော configuration ကိုပြုလုပ်ရန်လိုအပ်သည်။ ၎င်းတွင်ဖိုင်အမျိုးအစား, ဖိုင်အရွယ်အစား, upload လမ်းကြောင်းစသဖြင့်ကန့်သတ်ခြင်းပါဝင်သည်

ဤဆောင်းပါးသည် Inst function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးနိုင်သည်။ ဖိုင်မှတင်ထားသော configurations များကိုတဖြည်းဖြည်းချင်းရှင်းပြပါမည်

1 ။ ဖိုင်တင်ခြင်း၏အခြေခံမူများ

PHP တွင်ဖိုင်တင်ခြင်းကို HTML form မှတဆင့်ပြုလုပ်သည်။ ဘုံပုံစံတင်သွင်းမှုနည်းလမ်းသည် <form> tag and encmype = "Martwart / form-data" မှတဆင့်ဖိုင်တင်ခြင်းနည်းလမ်းကိုကိုင်တွယ်ရန်ဖြစ်သည်။ ဖိုင်ကိုတင်သောအခါ browser သည်ဖိုင်ဒေတာကိုဆာဗာသို့လွှဲပြောင်းပေးလိမ့်မည်။ ဆာဗာသည် Usiles Global Array မှတဆင့်တင်ထားသောဖိုင်နှင့်သက်ဆိုင်သောသတင်းအချက်အလက်များကိုလက်ခံလိမ့်မည်။

အခြေခံ HTML ဖိုင်တင်ခြင်းပုံစံသည်ဤပုံနှင့်တူသည်။

 <form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form>

2 ။ ဖိုင်တင်ခြင်း configuration ပစ္စည်းများ

PHP တွင်အထူးဂရုပြုရန်လိုအပ်သောအရေးကြီးသောပြင်ဆင်မှုပစ္စည်းများရှိသည်။

  • Upload_Max_Filesize - တင်ထားသောဖိုင်များ၏အများဆုံးအရွယ်အစားကိုကန့်သတ်ထားသည်။

  • Post_Max_size - ပုံစံတစ်ခုလုံး (ဖိုင်များအပါအ 0 င်) ဒေတာအပါအ 0 င်ပုံစံတစ်ခုလုံးကိုကန့်သတ်ထားသည်။

  • File_uploads : ဖိုင်တင်ခြင်းကိုခွင့်ပြုမထား, ၎င်းကိုပုံမှန်အားဖြင့်ဖွင့်ထားသည်။

  • Max_file_uploads : တောင်းဆိုမှုနှုန်းတင်ထားသောဖိုင်အရေအတွက်အများဆုံးအရေအတွက်ကိုကန့်သတ်ထားသည်။

ဤပြင်ဆင်မှုပစ္စည်းများသည်များသောအားဖြင့် php.ini ဖိုင်တွင်တပ်ဆင်ထားသည်။ ဥပမာအားဖြင့်:

 upload_max_filesize = 10M
post_max_size = 20M
file_uploads = On
max_file_uploads = 5

3 ။ Inter function ကိုအသုံးပြုပြီး File Upload configuration ကိုစတင်ပါ

Instrunce function ကိုယေဘုယျအားဖြင့်ဖိုင်များကိုတင်ရန်လိုအပ်သော configuration ကိုသတ်မှတ်ရန်နှင့်စတင်ရန်အစပြုသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် PHP file uploading ၏ configuration ကိုပြင်ဆင်ရန် PHP ဖိုင်တင်ခြင်းဖွဲ့စည်းမှုကိုပုံမှန်လည်ပတ်နိုင်ရန်အတွက် Init function ကိုဖန်တီးနိုင်သည်။

ဤနေရာတွင် ast function ကိုမှတစ်ဆင့် upload configuration ကိုမည်သို့စတင်မည်ကိုပြသသည့်ရိုးရှင်းသော PHP ဥပမာတစ်ခုမှာ -

 function init_upload_config() {
    // အများဆုံးဖိုင်တင်ကြွဘေးအရွယ်အစားကိုသတ်မှတ်ပါ
    ini_set('upload_max_filesize', '10M');
    
    // တည်ဆောက်သည် POST အများဆုံးဒေတာအရွယ်အစား
    ini_set('post_max_size', '20M');
    
    // File Upload function ကိုဖွင့်ပါ
    ini_set('file_uploads', '1');
    
    // တောင်းဆိုမှုတစ်ခုအတွက်တင်ထားသောဖိုင်အရေအတွက်ကိုကန့်သတ်ပါ
    ini_set('max_file_uploads', '5');
    
    // upload ဖိုင်ကိုသိမ်းဆည်းရန်လမ်းညွှန်ကိုပြင်ဆင်ပါ
    define('UPLOAD_DIR', '/path/to/upload/directory/');
    
    // တည်ဆောက်သည်允许的စာချုပ်စာတမ်း类型
    define('ALLOWED_TYPES', ['image/jpeg', 'image/png', 'application/pdf']);
    
    // တည်ဆောက်သည်上传စာချုပ်စာတမ်း的 URL ဒိုမိန်းအမည်
    define('UPLOAD_URL', 'https://gitbox.net/uploads/');
}

4 ။ တင်ပါ

upload configuration ကိုစတင်ပြီးနောက်ကျွန်ုပ်တို့သည်ဖိုင်တင်ခြင်း၏အမှန်တကယ်လည်ပတ်မှုကိုကိုင်တွယ်ရန်လိုအပ်သည်။ အသုံးပြုသူများမှတင်ထားသောဖိုင်များကိုလက်ခံရရှိရန်နှင့်၎င်းတို့ကိုအခြေခံစိစစ်အတည်ပြုလုပ်ဆောင်ရန်အတွက်ရိုးရှင်းသောဖိုင်တင်ခြင်းလုပ်ဆောင်ချက်တစ်ခုကိုဖန်တီးသည်။

 function handle_file_upload($file) {
    // ဖိုင်တည်ရှိရှိမရှိစစ်ဆေးပါ
    if ($file['error'] != 0) {
        return 'ဖိုင်တင်ခြင်းဖိုင်မအောင်မြင်ပါ';
    }
    
    // ဖိုင်အမျိုးအစားကိုခွင့်ပြုမနေစစ်ဆေးပါ
    if (!in_array($file['type'], ALLOWED_TYPES)) {
        return 'မထောက်ခံဖိုင်အမျိုးအစားများ';
    }
    
    // ဖိုင်အရွယ်အစားကန့်သတ်ထက်ကျော်လွန်မလားစစ်ဆေးပါ
    if ($file['size'] > 10 * 1024 * 1024) {  // 10MB
        return 'ဖိုင်ကြီးကြီး';
    }
    
    // ဖိုင်သိုလှောင်မှုလမ်းကြောင်းကိုထုတ်လုပ်ပါ
    $uploadPath = UPLOAD_DIR . basename($file['name']);
    
    // directory ကိုပစ်မှတ်ထားရန်ဖိုင်များကိုရွှေ့ပါ
    if (move_uploaded_file($file['tmp_name'], $uploadPath)) {
        return 'အောင်မြင်စွာဖိုင်တင်ပါ!စာချုပ်စာတမ်း URL: ' . UPLOAD_URL . basename($file['name']);
    } else {
        return '上传စာချုပ်စာတမ်း时出错';
    }
}

5 ။ စစ်ဆင်ရေးတင်ခြင်းအတွက် init function ကိုပေါင်းစပ်

နောက်တစ်ခုက it_Upload_config function ကို Upload processing function နဲ့ပေါင်းစပ်လိုက်ပါတယ်။ ဖိုင်ကိုမတင်မီ configuration ကိုစတင်ရန် Ingout_Upload_config ဟုခေါ်သည်

 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['fileToUpload'])) {
    // upload configuration ကိုစတင်ပါ
    init_upload_config();
    
    // 处理上传的စာချုပ်စာတမ်း
    $result = handle_file_upload($_FILES['fileToUpload']);
    echo $result;
}

6 ။ ပြီးပြည့်စုံသောကုဒ်ဥပမာ

အောက်ဖော်ပြပါ PHP file upload ပြုပြင်ခြင်းကုဒ်နံပါတ်သည် Init function နှင့် file upload function ကိုပေါင်းစပ်ထားပြီးဖြစ်သည်။

 <?php
// upload configuration ကိုစတင်ပါ
function init_upload_config() {
    ini_set('upload_max_filesize', '10M');
    ini_set('post_max_size', '20M');
    ini_set('file_uploads', '1');
    ini_set('max_file_uploads', '5');
    define('UPLOAD_DIR', '/path/to/upload/directory/');
    define('ALLOWED_TYPES', ['image/jpeg', 'image/png', 'application/pdf']);
    define('UPLOAD_URL', 'https://gitbox.net/uploads/');
}

// 处理စာချုပ်စာတမ်း上传
function handle_file_upload($file) {
    if ($file['error'] != 0) {
        return 'ဖိုင်တင်ခြင်းဖိုင်မအောင်မြင်ပါ';
    }

    if (!in_array($file['type'], ALLOWED_TYPES)) {
        return 'မထောက်ခံဖိုင်အမျိုးအစားများ';
    }

    if ($file['size'] > 10 * 1024 * 1024) {
        return 'ဖိုင်ကြီးကြီး';
    }

    $uploadPath = UPLOAD_DIR . basename($file['name']);
    if (move_uploaded_file($file['tmp_name'], $uploadPath)) {
        return 'အောင်မြင်စွာဖိုင်တင်ပါ!စာချုပ်စာတမ်း URL: ' . UPLOAD_URL . basename($file['name']);
    } else {
        return '上传စာချုပ်စာတမ်း时出错';
    }
}

// အဓိကအစီအစဉ်
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['fileToUpload'])) {
    init_upload_config();
    $result = handle_file_upload($_FILES['fileToUpload']);
    echo $result;
}
?>

7 ။ အကျဉ်းချုပ်

အထက်ပါကုဒ်မှတဆင့်ကျွန်ုပ်တို့သည်ရိုးရှင်းသောဖိုင်တင်ခြင်းစနစ်ကိုအကောင်အထည်ဖော်နိုင်သည်။ အမှန်တကယ် application များအနေဖြင့်လိုအပ်သော upload_config function ကိုအသုံးပြုသည်။ ဤဖွဲ့စည်းပုံသည်ဖိုင်အမျိုးအစား, အရွယ်အစား, အရွယ်အစားဖိုင် တွဲ ဖိုင်ကိုပုံမှန်လည်ပတ်နေသောဖိုင်များကိုပြုလုပ်နိုင်ရန်နှင့်မတူကွဲပြားသောဖိုင်များနှင့်ကိုက်ညီမှုရှိစေရန်အတွက်တင်ဆက်ထားသောဖိုင်များကိုထိရောက်စွာကိုင်တွယ်ရန်အသုံးပြုသည်။

ဖိုင်တင်ခြင်း configuration ကိုနူးညံ့စေရန်နှင့်ဖိုင်ကိုချောချောမွေ့မွေ့ upload လုပ်ရန် Init function ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားနားလည်ရန်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါကမှတ်ချက်ပေးရန်မှတ်ချက်ပေးရန် area ရိယာတွင်စာတစ်စောင်ချန်ထားပါ။