PHP Development တွင်ဖိုင်တင်ခြင်းသည်ဖိုင်များကိုအသုံးအများဆုံးလိုအပ်ချက်ဖြစ်ပြီးဖိုင်များကိုတင်သောအခါယာယီသိုလှောင်မှုတည်နေရာသည်ဖိုင်များကိုတင်ခြင်း, လုံခြုံရေး, လုံခြုံရေးနှင့်ဆာဗာဖွဲ့စည်းမှုအပေါ်မပြောင်းလဲနိုင်သောသက်ရောက်မှုများရှိသည်။ ပုံမှန်အားဖြင့် PHP သည် PHPP.ini တွင် confload_tmp_dir လမ်းကြောင်းကိုအသုံးပြုသည်။ ဤဆောင်းပါးသည် PHP ဖိုင်များမှတင်ထားသောယာယီလမ်းညွှန်များကိုပြုပြင်ရန်နှင့်လက်တွေ့ကျသောအချက်များနှင့်ကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန် Ini_set လုပ်ဆောင်ချက်ကိုမည်သို့အသုံးပြုမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါလိမ့်မည်။
Ini_set () သည် PHP မှ PHP မှပေးသော function ကို runtime တွင်ပြုပြင်ခြင်းအတွက်ပြုပြင်ရန်ဖြစ်သည်။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$option</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-keyword">float</span></span><span>|</span><span><span class="hljs-keyword">bool</span></span><span>|</span><span><span class="hljs-literal">null</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
ဤလုပ်ဆောင်ချက်သည်သတ်မှတ်ထားသော configuration option ကိုပြုပြင်ရန်ကြိုးစားပါလိမ့်မည်။ အောင်မြင်ပါကတန်ဖိုးဟောင်း ကို ပြန်ပို့ပါ။
သို့သော်ပစ္စည်းပုံစံအားလုံး၏ "php_ini_ *)" ပေါ် မူတည်. configuration ပစ္စည်းများအားလုံးကို Runtime တွင်ပြုပြင်ခြင်းမပြုနိုင်ကြောင်း သတိပြုသင့်သည်။
ပုံမှန်ပြင်ဆင်မှုအောက်တွင်ဖိုင်တင်ခြင်းဖိုင်များကိုစနစ်အဆင့်တွင်ယာယီလမ်းညွှန်တွင်ယာယီသိမ်းဆည်းထားပါသည် (ဥပမာ / TMP ) ။ ၎င်းကိုပြုပြင်ခြင်းသည်အောက်ပါရည်ရွယ်ချက်များရှိနိုင်သည်။
Disk I / O စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ပါ (ဥပမာ - SSD လမ်းကြောင်းများအသုံးပြုခြင်း)
လွယ်ကူသောပြုပြင်ထိန်းသိမ်းမှုအတွက် application data data နှင့် system data
လုံခြုံရေးကိုတိုးတက်အောင်လုပ်ပြီးအခြား 0 န်ဆောင်မှုများက scan ဖတ်နေသည့်ယာယီဖိုင်များကိုရှောင်ပါ
အသုံးပြုသူပေါင်းစုံစနစ်များသို့မဟုတ်ကွန်တိန်နာနေရာချထားမှု၏အထီးကျန်လိုအပ်ချက်များကိုတုံ့ပြန်ပါ
upload ယာယီလမ်းညွှန်ကို PHP script တစ်ခုတွင်ပြုပြင်ရန်အောက်ပါကုဒ်ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$customTmpDir</span></span><span> = </span><span><span class="hljs-string">'/path/to/custom/tmp'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'upload_tmp_dir'</span></span><span>, </span><span><span class="hljs-variable">$customTmpDir</span></span><span>);
</span></span>
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$customTmpDir</span></span><span> = </span><span><span class="hljs-string">'/var/www/project/tmp_uploads'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'upload_tmp_dir'</span></span><span>, </span><span><span class="hljs-variable">$customTmpDir</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span> && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'myfile'</span></span><span>])) {
</span><span><span class="hljs-variable">$tmpPath</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'myfile'</span></span><span>][</span><span><span class="hljs-string">'tmp_name'</span></span><span>];
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"တင်ရန်ယာယီလမ်းကြောင်းသည်: <span class="hljs-subst">$tmpPath</span></span></span><span>";
</span><span><span class="hljs-comment">// ပစ်မှတ်လမ်းညွှန်သို့ရွှေ့ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">move_uploaded_file</span></span><span>(</span><span><span class="hljs-variable">$tmpPath</span></span><span>, </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/uploads/'</span></span><span> . </span><span><span class="hljs-title function_ invoke__">basename</span></span><span>(</span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'myfile'</span></span><span>][</span><span><span class="hljs-string">'name'</span></span><span>]));
}
</span><span><span class="hljs-meta">?></span></span><span>
<form method=</span><span><span class="hljs-string">"post"</span></span><span> enctype=</span><span><span class="hljs-string">"multipart/form-data"</span></span><span>>
<input type=</span><span><span class="hljs-string">"file"</span></span><span> name=</span><span><span class="hljs-string">"myfile"</span></span><span> />
<button type=</span><span><span class="hljs-string">"submit"</span></span><span>>တင်ပါ</button>
</form>
</span></span>
အဆိုပါလမ်းညွှန်တည်ရှိရမည်ဖြစ်သည်
Upload_tmp_dir မှသတ်မှတ်ထားသောလမ်းညွှန်သည်တည်ရှိရမည်။ 0 က်ဘ် ဆိုက်ဆာဗာအသုံးပြုသူ (ထိုကဲ့သို့သော www-data) တွင်ရေးထားသောခွင့်ပြုချက်များကိုရေးပါ။
အရေးယူ၏ကန့်သတ်နယ်ပယ်
Ini_set () setting သည်လက်ရှိ script execution အတွက်သာတရားဝင်သည်။ mod_php ကဲ့သို့သော Apache ပတ်ဝန်းကျင်ကိုအသုံးပြုသည်ဆိုပါက script ကိုမလုပ်ဆောင်မီအပ်လုဒ်ကိုအပြီးသတ်နိုင်ပြီးဤကိစ္စတွင်အခြေအနေမမှန်ကန်ပါ။
CLI သို့မဟုတ် FPM Mode အတွက်သင့်တော်သည် PHP-FPM (သို့) CLI Modes များတွင် Ini_set (STIC) တွင် Ini_set () သည်အထူးသဖြင့် Move_uploaded_File () ကို မပြုလုပ်မီအမူအကျင့်ကိုအောင်မြင်စွာအကျိုးသက်ရောက်နိုင်သည်။
အခြားရွေးချယ်စရာ - Php.INI သို့မဟုတ် .USER.INI ကို configure လုပ်ပါ
မြဲမြဲ settings များလိုအပ်ပါက php.ini ဖိုင်များကိုပြုပြင်ရန်သို့မဟုတ်အသုံးပြုရန်အကြံပြုသည် ။
<span><span><span class="hljs-attr">upload_tmp_dir</span></span><span> = /var/www/project/tmp_uploads
</span></span>
Ini_set ကို အသုံးပြုနေစဉ် PHP Configuration ကို Runtime ကိုပြုပြင်ရန်ပြောင်းလွယ်ပြင်လွယ်ရှိရန်ပြောင်းလွယ်ပြင်လွယ်ရှိစေရန်ခွင့်ပြုရန်ခွင့်ပြုသည်။ အခြေအနေများပါမစ်ပါက configuration file level settings သည်ပိုမိုတည်ငြိမ်ပြီးယုံကြည်စိတ်ချရသောဖြစ်လိမ့်မည်။ မည်သည့်နည်းလမ်းကိုအသုံးပြုပါစေ Upload လုပ်ငန်းစဉ်နှင့်ဆာဗာခွင့်ပြုချက်ဖွဲ့စည်းပုံကိုနားလည်ခြင်းသည်ပုံမှန်အတိုင်းပြုလုပ်သောလုပ်ဆောင်မှုကိုတည်ငြိမ်သောလည်ပတ်မှုကိုသေချာစေရန်အမြဲတမ်းအခြေခံဖြစ်သည်။