PHP တွင်ဖိုင်တင်ခြင်းသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ ပြောင်းရွှေ့ခြင်း () function ကို ဖြတ်. တင်ထားသောဖိုင်များကိုယာယီဖိုင်တွဲမှသတ်မှတ်ထားသောပစ်မှတ်လမ်းညွှန်သို့လုံခြုံစွာရွှေ့ပြောင်းနိုင်သည်။ ဤဆောင်းပါးသည်ရိုးရိုးရှင်းရှင်းနှင့်လက်တွေ့ကျသောဖိုင်စီမံခန့်ခွဲမှုစနစ်ကိုတည်ဆောက်ရန် Move_uploaded_File () function ကိုမည်သို့ပေါင်းစပ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Move_UPLOADED_File () သည် PHP တွင်တင်ထားသောဖိုင်များကိုယာယီလမ်းညွှန်များမှပစ်မှတ်ထားသောလမ်းညွှန်များသို့ရွှေ့ပြောင်းရန် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">move_uploaded_file</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$destination</span></span><span> )
</span></span>
$ filename - upload ဖိုင်ကိုယာယီဖိုင်လမ်းကြောင်းကိုပြောင်းရွှေ့ရန်ညွှန်ပြသည်။
$ destination : နောက်ဆုံးသိမ်းဆည်းထားသောဖိုင်သို့ ဦး တည်ရာလမ်းကြောင်းကိုကိုယ်စားပြုသည်။
ဤ function ကိုဖိုင်ကို http post မှတဆင့်တင်ပြီးယာယီဖိုင်တည်ရှိပါကအောင်မြင်စွာကွပ်မျက်ခံရနိုင်သည်။ တင်ထားသောဖိုင်သည်တရားမ 0 င်သို့မဟုတ်ပစ်မှတ်လမ်းကြောင်းသည်မမှားပါက function သည် မှားယွင်း လိမ့်မည်။
ပထမ ဦး စွာအသုံးပြုသူများသည်ဖိုင်များကို upload လုပ်နိုင်သောရိုးရှင်းသော HTML ပုံစံကိုတည်ဆောက်ရန်လိုအပ်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-tag"><<span class="hljs-name">form</span></span></span><span> </span><span><span class="hljs-attr">action</span></span><span>=</span><span><span class="hljs-string">"upload.php"</span></span><span> </span><span><span class="hljs-attr">method</span></span><span>=</span><span><span class="hljs-string">"post"</span></span><span> </span><span><span class="hljs-attr">enctype</span></span><span>=</span><span><span class="hljs-string">"multipart/form-data"</span></span><span>>
</span><span><span class="hljs-tag"><<span class="hljs-name">label</span></span></span><span> </span><span><span class="hljs-attr">for</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span>>File Upload ကိုရွေးချယ်ပါ:</span><span><span class="hljs-tag"></<span class="hljs-name">label</span></span></span><span>>
</span><span><span class="hljs-tag"><<span class="hljs-name">input</span></span></span><span> </span><span><span class="hljs-attr">type</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span> </span><span><span class="hljs-attr">name</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span> </span><span><span class="hljs-attr">id</span></span><span>=</span><span><span class="hljs-string">"file"</span></span><span>>
</span><span><span class="hljs-tag"><<span class="hljs-name">input</span></span></span><span> </span><span><span class="hljs-attr">type</span></span><span>=</span><span><span class="hljs-string">"submit"</span></span><span> </span><span><span class="hljs-attr">value</span></span><span>=</span><span><span class="hljs-string">"ဖိုင်တင်ပါ"</span></span><span>>
</span><span><span class="hljs-tag"></<span class="hljs-name">form</span></span></span><span>>
</span></span>
ဤပုံစံတွင် encm ရာဝတီ = "Multipart / Form-data" သည် ပုံစံကိုမှန်ကန်စွာတင်နိုင်အောင်ပုံစံ၏အချက်အလက်အမျိုးအစားကိုသတ်မှတ်သည်။ Type = "File" ကို input tag မှာအသုံးပြုသူကိုဖိုင်တစ်ခုရွေးခွင့်ပြုရန်အသုံးပြုသည်။
ဖိုင်တင်ခြင်းအတွက်လုပ်ဆောင်မှု script တွင် (ဥပမာ upload.php ကဲ့သို့) ဖိုင်တင်ခြင်းအတွက်ဖိုင်ကိုအစားထိုး destination folder တစ်ခုမှရွှေ့ရန် Move_Uploaded_file () ကို အသုံးပြုမည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Directory ကိုတင်ပါ</span></span><span>
</span><span><span class="hljs-variable">$uploadDir</span></span><span> = </span><span><span class="hljs-string">'uploads/'</span></span><span>;
</span><span><span class="hljs-comment">// ပစ်မှတ်ဖိုလ်ဒါတည်ရှိမရှိမရှိစစ်ဆေးပါ,မတည်ရှိပါကဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-variable">$uploadDir</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">mkdir</span></span><span>(</span><span><span class="hljs-variable">$uploadDir</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
}
</span><span><span class="hljs-comment">// ဖိုင်များတင်ခြင်းရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</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">'file'</span></span><span>]) && </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'error'</span></span><span>] == </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-comment">// 获取ဖိုင်တင်ပါ的信息</span></span><span>
</span><span><span class="hljs-variable">$fileName</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'name'</span></span><span>]; </span><span><span class="hljs-comment">// ဖိုင်နာမည်</span></span><span>
</span><span><span class="hljs-variable">$fileTmpName</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'tmp_name'</span></span><span>]; </span><span><span class="hljs-comment">// ယာယီဖိုင်လမ်းကြောင်း</span></span><span>
</span><span><span class="hljs-variable">$fileSize</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'size'</span></span><span>]; </span><span><span class="hljs-comment">// ဖိုင်အရွယ်အစား</span></span><span>
</span><span><span class="hljs-variable">$fileType</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'file'</span></span><span>][</span><span><span class="hljs-string">'type'</span></span><span>]; </span><span><span class="hljs-comment">// ဖိုင်အမျိုးအစား</span></span><span>
</span><span><span class="hljs-comment">// ပစ်မှတ်ဖိုင်လမ်းကြောင်းကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$destination</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-title function_ invoke__">basename</span></span><span>(</span><span><span class="hljs-variable">$fileName</span></span><span>);
</span><span><span class="hljs-comment">// 检查ဖိုင်အရွယ်အစား(ဥပမာအားဖြင့်အမြင့်ဆုံးဖိုင်ကန့်သတ်ချက်မှာ 5MB)</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$fileSize</span></span><span> > </span><span><span class="hljs-number">5</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်ကြီးကြီး,အများဆုံးခွင့်ပြုပါ 5MB。"</span></span><span>;
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-comment">// directory ကိုပစ်မှတ်ထားရန်ဖိုင်များကိုရွှေ့ပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">move_uploaded_file</span></span><span>(</span><span><span class="hljs-variable">$fileTmpName</span></span><span>, </span><span><span class="hljs-variable">$destination</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အောင်မြင်စွာဖိုင်တင်ပါ!ဖိုင်နာမည်:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$fileName</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တင်ခြင်းမအောင်မြင်ပါ!"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တင်ခြင်းသို့မဟုတ်ဖိုင်တင်ခြင်းအမှားမရှိပါ!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
အထက်ပါကုဒ်တွင်ဖိုင်များတင်ခြင်းရှိမရှိကို ဦး စွာစစ်ဆေးပြီးတင်သည့်ကာလအတွင်းအမှားအယွင်းများရှိမရှိစစ်ဆေးပါ။ ထို့နောက်ကျွန်ုပ်တို့သည်ဖိုင်၏ယာယီလမ်းကြောင်းနှင့်ဖိုင်အမည်ကိုရယူပြီး file ၏နောက်ဆုံးသိုလှောင်မှုကိုနောက်ဆုံးသိုလှောင်မှုဖိုင်တွဲ ( uploads / ) ကိုသတ်မှတ်ပါ။ အကယ်. ပစ်မှတ်ဖိုင်တွဲမရှိပါက script သည်ဖိုင်တွဲကိုအလိုအလျောက်ဖန်တီးလိမ့်မည်။
နောက်တစ်ခုကဖိုင်ကိုယာယီလမ်းကြောင်းမှယာယီလမ်းကြောင်းမှရွှေ့ရန် Move_Uploaded_File () function ကိုအသုံးပြုသည်။ အကယ်. ပြောင်းရွှေ့မှုအောင်မြင်လျှင် script သည်အောင်မြင်မှုသတင်းစကားကိုထုတ်ပေးလိမ့်မည်။
အခြေခံ File Upload function ကိုအထက်တွင်ကျွန်ုပ်တို့သည်ဖိုင်စီမံခန့်ခွဲမှုစနစ်၏လုပ်ဆောင်မှုများကိုပိုမိုမြှင့်တင်ပေးနိုင်ပြီးအောက်ပါဘုံလုပ်ငန်းများကိုဖြည့်ဆည်းပေးနိုင်သည်။
ပစ်မှတ်လမ်းညွှန်စာရင်းတွင်ဖိုင်စာရင်းကိုဖတ်ရှုခြင်းဖြင့်တင်ထားသောဖိုင်များကိုသင်စာရင်းပြုစုနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_diff</span></span><span>(</span><span><span class="hljs-title function_ invoke__">scandir</span></span><span>(</span><span><span class="hljs-variable">$uploadDir</span></span><span>), </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">'..'</span></span><span>, </span><span><span class="hljs-string">'.'</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<ul>"</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><a href='<span class="hljs-subst">{$uploadDir}</span></span></span><span><span class="hljs-subst">{$file}</span></span><span>'></span><span><span class="hljs-subst">{$file}</span></span><span></a></li>";
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"</ul>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ဤကုဒ်သည် directory ထဲတွင်ဖိုင်များအားလုံးကိုရယူရန်နှင့် filter filter ကိုရယူရန်ဤကုဒ်သည် စနဂို () function ကိုအသုံးပြုသည် ။ နှင့် .. ထို့နောက်ဖိုင်အမည်ကို hyperlink အဖြစ်ပြသသည်။
ဖိုင်များကိုဖျက်ခြင်း၏လုပ်ဆောင်မှုကိုလည်းကျွန်ုပ်တို့ပေးနိုင်သည်။ Delete Link ကိုနှိပ်ခြင်းအားဖြင့်အသုံးပြုသူသည်သတ်မှတ်ထားသောဖိုင်ကိုဖျက်နိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'delete'</span></span><span>])) {
</span><span><span class="hljs-variable">$fileToDelete</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'delete'</span></span><span>];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$fileToDelete</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">unlink</span></span><span>(</span><span><span class="hljs-variable">$fileToDelete</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်ဖျက်လိုက်သည်: "</span></span><span> . </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'delete'</span></span><span>];
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်မတည်ရှိပါဘူး!"</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ဖိုင်စာရင်းတွင်ဖိုင်တစ်ခုစီအတွက်ဖျက်ရန် link တစ်ခုပေးပြီးနှိပ်ပြီးနောက်ဖျက်ခြင်းကိုပြုလုပ်လိမ့်မည်။ ဖိုင်များကိုဖျက်ရန် Unlink () function ကိုအသုံးပြုသည်။
ဖိုင်အမည်ပြောင်းခြင်းသည်ဖိုင်စီမံခန့်ခွဲမှုစနစ်များတွင်ဘုံစစ်ဆင်ရေးတစ်ခုဖြစ်သည်။ ဖိုင်များအတွက်အမည်ပြောင်းခြင်း function ကိုကျွန်ုပ်တို့ပေးနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'rename'</span></span><span>]) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'new_name'</span></span><span>])) {
</span><span><span class="hljs-variable">$oldFile</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'rename'</span></span><span>];
</span><span><span class="hljs-variable">$newFile</span></span><span> = </span><span><span class="hljs-variable">$uploadDir</span></span><span> . </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'new_name'</span></span><span>];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">rename</span></span><span>(</span><span><span class="hljs-variable">$oldFile</span></span><span>, </span><span><span class="hljs-variable">$newFile</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်ကိုအောင်မြင်စွာအမည်ပြောင်းပါ!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အမည်မသိ!"</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ပုံစံတစ်ခုကိုတင်ပြခြင်းအားဖြင့်အသုံးပြုသူသည်ဖိုင်အတွက်ဖိုင်အမည်အသစ်ကိုသတ်မှတ်နိုင်သည်။ Rename () function သည်ဖိုင်အဟောင်းကိုအမည်အနေဖြင့်အမည်အသစ်ဖြင့်ပြောင်းလဲသည်။
Move_uploaded_File () function ကိုပေါင်းစပ်ခြင်းဖြင့် PHP သည်ရိုးရှင်းသောနှင့်လက်တွေ့ကျသောဖိုင်စီမံခန့်ခွဲမှုစနစ်ကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤစနစ်သည် File Upload ကိုထောက်ပံ့ရုံသာမက file list, ဖျက်ခြင်းနှင့်အမည်ပြောင်းခြင်းကဲ့သို့သောတူညီသောလုပ်ငန်းများကိုလည်းထောက်ပံ့ပေးသည်။ ဖိုင်စီမံခန့်ခွဲမှုစနစ်ကိုအကောင်အထည်ဖော်သောအခါ Target Folder ၏ခွင့်ပြုချက်ကိုမှန်ကန်စွာသတ်မှတ်ထားရန်သေချာစေရန်နှင့်ဖိုင်အရွယ်အစား, အမျိုးအစားစသည်ဖြင့်ဖိုင်အရွယ်အစား, အမျိုးအစားနှင့်စသည်တို့ကိုသင့်လျော်စွာအတည်ပြုရန်လိုအပ်သည်။
အထက်ပါအဆင့်များမှတစ်ဆင့်သင်သည်အခြေခံဖိုင်တင်ခြင်းနှင့်စီမံခန့်ခွဲမှုစနစ်ကိုလျင်မြန်စွာတည်ဆောက်နိုင်ပြီးသင်၏လိုအပ်ချက်များနှင့်အညီပိုမိုလုပ်ဆောင်မှုများကိုထပ်မံတိုးချဲ့နိုင်သည်။