လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဖိုင်တစ်ခုကိုဒေါင်းလုပ်လုပ်သည့်အခါ download ဖိုင်အမည်ကိုသတ်မှတ်ရန်အကြောင်းအရာ - သဘောထားကိုအသုံးပြုပါ

ဖိုင်တစ်ခုကိုဒေါင်းလုပ်လုပ်သည့်အခါ download ဖိုင်အမည်ကိုသတ်မှတ်ရန်အကြောင်းအရာ - သဘောထားကိုအသုံးပြုပါ

M66 2025-05-28

0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုများစွာတွင်အသုံးပြုသူများသည်ဖိုင်များကို download လုပ်ရန်လိုအပ်နိုင်သည်။ PHP မှပေးသော header function ကို အသုံးပြု. ဖိုင်၏ download be beurner ကိုထိန်းချုပ်ရန် HTTP တုန့်ပြန်မှုခေါင်းစဉ်ကိုအလွယ်တကူသတ်မှတ်နိုင်သည်။ ဒီသင်ခန်းစာမှာ PHP ရဲ့ header function ကိုသုံးပြီး download လုပ်ထားသောဖိုင်အမည်ကိုသတ်မှတ်ရန် Content-header function ကို အသုံးပြုနည်းကိုမိတ်ဆက်ပေးမည်။

1 ။ အကြောင်းအရာ - သဘောထား ကဘာလဲ?

Content-Desefultion ဆိုသည်မှာ http header တစ်ခုဖြစ်ပြီး browser ကိုမည်သို့လုပ်ဆောင်ရမည်ကိုပြောသော http header ဖြစ်သည်။ အသုံးအများဆုံးအသုံးပြုမှုမှာဖိုင်ကို browser ပေါ်တွင် download download လုပ်ခြင်းကိုစတင်ရန်နှင့် download လုပ်ထားသောဖိုင်အတွက်ဖိုင်အမည်ကိုသတ်မှတ်ရန်ဖြစ်သည်။ ၎င်းကိုများသောအားဖြင့် content-type ဖြင့်အသုံးပြုသည်။ ၎င်းသည်ဖိုင်၏အကြောင်းအရာအမျိုးအစားကိုမည်သို့အနက်ဖွင့်ရမည်ကိုဘရောက်ဇာကိုပြောပြသည်။

2 ။ အကြောင်းအရာ - header function ကို အသုံးပြု. အကြောင်းအရာ - သဘောထားကို သတ်မှတ်နည်း။

HTTP ခေါင်းစီးများကိုပို့ရန် HTTP headers များကိုပို့ရန် HTTER function ကိုအသုံးပြုနိုင်သည်။ ဖိုင်ကိုဖိုင်ကိုဒေါင်းလုပ်လုပ်သည့်အခါဖိုင်အမည်ကိုသတ်မှတ်လိုပါက အကြောင်းအရာ - သဘောထား ခေါင်းစီးကိုသတ်မှတ်နိုင်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

 <?php
// ဖိုင်လမ်းကြောင်းကိုသတ်မှတ်ပါ
$file = 'path/to/your/file.txt';

// ဖိုင်တည်ရှိသေချာအောင်လုပ်ပါ
if (file_exists($file)) {
    // မှန်ကန်သောအကြောင်းအရာအမျိုးအစားကိုသတ်မှတ်ပါ,ဤသည် download file တစ်ခုဖြစ်သော browser ကိုပြောပါ
    header('Content-Type: application/octet-stream');
    
    // တည်ဆောက်သည် Content-Disposition ဉီးခေါင်း,ဖိုင်ကို download လုပ်သည့်အခါဖိုင်အမည်ကိုသတ်မှတ်ပါ
    header('Content-Disposition: attachment; filename="downloaded_file.txt"');
    
    // တည်ဆောက်သည်文件大小
    header('Content-Length: ' . filesize($file));
    
    // ဖတ်ပြီး output ဖိုင်အကြောင်းအရာ
    readfile($file);
    exit;
} else {
    echo "ဖိုင်မတည်ရှိပါဘူး!";
}
?>

3 ။ ကုဒ်ဖော်ပြချက်

  • header ('အကြောင်းအရာအမျိုးအစား: လျှောက်လွှာ / octet-stream'); ဖြေ - ဒီကုဒ်လိုင်းက binary file ကို download လုပ်ပြီးအလိုအလျောက်ဖွင့်လို့မရတော့ဘူး။

  • header ('အကြောင်းအရာ - သဘောထား - ပူးတွဲမှု - ပူးတွဲမှု, filename = "downloaded_file.txt"); ဖြေ - ဒီကုဒ်နံပါတ်ကဖိုင်ကို ပူးတွဲဖိုင် အဖြစ်ဒေါင်းလုပ်လုပ်ပြီး download လုပ်ထားတယ်။ ဖိုင်ကို download လုပ်ထားသောအမည် "download လုပ်ထားတဲ့ download_file.txt" ကိုသတ်မှတ်ပေးတယ်။

  • header ('အကြောင်းအရာ - အရှည်:' ။ ။ ဖိုင် ($ file)); : ဤကုဒ်နံပါတ်သည်ဖိုင်၏ download ကိုမှန်ကန်စွာကိုင်တွယ်ရန် browser ကိုကူညီသည်။

  • Readfile ($ file); ဖြေ - ဒီ function ကဖိုင်ကိုဖတ်ပြီး content ကို browser ထဲကိုပို့လိုက်တယ်။

4 ။ dymonically ထုတ်ပေးဖိုင်အမည်များကိုဘယ်လိုသုံးရမလဲ။

တစ်ခါတစ်ရံကျွန်ုပ်တို့သည် filename ကို dynamally fixed string တစ်ခုမျှသာမဟုတ်ပါ။ ဤကိစ္စတွင် PHP variable များမှတဆင့်ဖိုင်အမည်ကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်:

 <?php
// ဖိုင်လမ်းကြောင်းကိုသတ်မှတ်ပါ
$file = 'path/to/your/file.txt';

// dynamicy ဖိုင်အမည်များကိုထုတ်ပေး
$fileName = 'downloaded_' . date('Y-m-d_H-i-s') . '.txt';

// ဖိုင်တည်ရှိသေချာအောင်လုပ်ပါ
if (file_exists($file)) {
    // မှန်ကန်သောအကြောင်းအရာအမျိုးအစားကိုသတ်မှတ်ပါ
    header('Content-Type: application/octet-stream');
    
    // 动态တည်ဆောက်သည် Content-Disposition ဉီးခေါင်း
    header('Content-Disposition: attachment; filename="' . $fileName . '"');
    
    // တည်ဆောက်သည်文件大小
    header('Content-Length: ' . filesize($file));
    
    // ဖတ်ပြီး output ဖိုင်အကြောင်းအရာ
    readfile($file);
    exit;
} else {
    echo "ဖိုင်မတည်ရှိပါဘူး!";
}
?>

ဤဥပမာတွင်ဖိုင်အမည်တွင်လက်ရှိနေ့စွဲနှင့်အချိန် (ဥပမာ - download လုပ်ထားသည့်အတိုင်း ဒေါင်းလုပ် လုပ်. download လုပ်သည်။ ) တွင်သင်ဒေါင်းလုပ်လုပ်တိုင်းဖိုင်အမည်သည်ကွဲပြားခြားနားလိမ့်မည်။

5 ။ URL downloads ကိုဘယ်လိုကိုင်တွယ်ရမလဲ။

တခါတရံတွင်ကျွန်ုပ်တို့သည်ဆာဗာရှိ local files များသာမက URL မှတစ်ဆင့်ဖိုင်ဒေါင်းလုပ်များကိုပေးရန်လိုအပ်သည်။ အကြောင်းအရာ - စိတ်ထားကို သတ်မှတ်ရန်နှင့်ဝေးလံခေါင်သီသောဆာဗာမှဖိုင်အကြောင်းအရာကို download လုပ်ရန် header function ကိုသုံးနိုင်သည်။

 <?php
// တည်ဆောက်သည်远程文件 URL
$url = 'https://m66.net/files/sample.txt';

// ဖိုင်အကြောင်းအရာကိုရယူပါ
$fileContent = file_get_contents($url);

// ဖိုင်အကြောင်းအရာအောင်မြင်စွာရရှိသောလျှင်
if ($fileContent !== false) {
    // တည်ဆောက်သည်文件类型
    header('Content-Type: application/octet-stream');
    
    // တည်ဆောက်သည်文件下载名称
    header('Content-Disposition: attachment; filename="sample_from_m66.txt"');
    
    // တည်ဆောက်သည်文件大小
    header('Content-Length: ' . strlen($fileContent));
    
    // output ဖိုင်အကြောင်းအရာ
    echo $fileContent;
    exit;
} else {
    echo "ဖိုင်ကို download မလုပ်နိုင်ပါ!";
}
?>

ဤဥပမာတွင် file ကို https://m66.net/files/samplet.txt မှဖိုင်ကို download လုပ်ပြီး download file ၏အမည်ကို header မှ sample_from_m66.txt သို့သတ်မှတ်ပါ။

6 ။ မှတ်စုဖို့အရာ

  • မည်သည့် header ကို မပို့မီ HTML output မရှိပါ။ ဘာဖြစ်လို့လဲဆိုတော့ HTTP ခေါင်းစီးကိုမည်သည့်အကြောင်းအရာမဆိုထုတ်ဖော်ပြောဆိုခြင်းမပြုမီပို့ရမည်။

  • အကယ်. ဖိုင်သည်ကြီးမားပါကဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့တင်မည့်အစားဖိုင်အကြောင်းအရာများကို streaming လုပ်ခြင်းကိုစဉ်းစားပါ။

အကျဉ်းချုပ်

PHP ၏ header function မှတဆင့်ဖိုင်များ၏ download လုပ်သည့်အခါဖိုင်အမည်ကို setting အပါအ 0 င်ဖိုင်များ၏ download by belection ကိုအလွယ်တကူထိန်းချုပ်နိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤလုပ်ဆောင်ချက်သည်အထူးသဖြင့်ဖိုင်စီမံခန့်ခွဲမှုစနစ်များနှင့်အစီရင်ခံစာမျိုးဆက်များကဲ့သို့သော application များဖြစ်သည်။