PHP တွင်ဖိုင်တင်ခြင်းသည်ဘုံစစ်ဆင်ရေးဖြစ်သည်။ ဖိုင်တင်ခြင်းလုပ်ငန်းသည်ပုံမှန်အားဖြင့်လည်ပတ်ရန်သေချာစေရန်အတွက်ကျွန်ုပ်တို့သည် File Upload ကိုကျိုးကြောင်းဆီလျော်သော configuration ကိုပြုလုပ်ရန်လိုအပ်သည်။ ၎င်းတွင်ဖိုင်အမျိုးအစား, ဖိုင်အရွယ်အစား, upload လမ်းကြောင်းစသဖြင့်ကန့်သတ်ခြင်းပါဝင်သည် ။
ဤဆောင်းပါးသည် Inst function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးနိုင်သည်။ ဖိုင်မှတင်ထားသော configurations များကိုတဖြည်းဖြည်းချင်းရှင်းပြပါမည် ။
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>
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
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/');
}
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 '上传စာချုပ်စာတမ်း时出错';
}
}
နောက်တစ်ခုက 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;
}
အောက်ဖော်ပြပါ 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;
}
?>
အထက်ပါကုဒ်မှတဆင့်ကျွန်ုပ်တို့သည်ရိုးရှင်းသောဖိုင်တင်ခြင်းစနစ်ကိုအကောင်အထည်ဖော်နိုင်သည်။ အမှန်တကယ် application များအနေဖြင့်လိုအပ်သော upload_config function ကိုအသုံးပြုသည်။ ဤဖွဲ့စည်းပုံသည်ဖိုင်အမျိုးအစား, အရွယ်အစား, အရွယ်အစားဖိုင် တွဲ ဖိုင်ကိုပုံမှန်လည်ပတ်နေသောဖိုင်များကိုပြုလုပ်နိုင်ရန်နှင့်မတူကွဲပြားသောဖိုင်များနှင့်ကိုက်ညီမှုရှိစေရန်အတွက်တင်ဆက်ထားသောဖိုင်များကိုထိရောက်စွာကိုင်တွယ်ရန်အသုံးပြုသည်။
ဖိုင်တင်ခြင်း configuration ကိုနူးညံ့စေရန်နှင့်ဖိုင်ကိုချောချောမွေ့မွေ့ upload လုပ်ရန် Init function ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားနားလည်ရန်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါကမှတ်ချက်ပေးရန်မှတ်ချက်ပေးရန် area ရိယာတွင်စာတစ်စောင်ချန်ထားပါ။