image

PHP - somo la 35: Jinsi ya ku upload mafaili kwa kutumia PHP

Katika somo hili utakwenda kujifunza jinsi ya ku upload mafaili kwenye server kwa kutumia PHP

JINSI YA KU UPLOAD MAFAILI :

Katika somo hili utakwenda kujifunza jinsi ya ku upload mafaili. Somo hili limegawanyika katika sehemu kuu 8:-

  1. Kuandaa html form

  2. Kupata taarifa za faili

  3. Jinsi ya ku upload

  4. Kuedit jina

  5. Kuangalia kama faili lipo

  6. Jinsi ya kuzuia kiwango maalumu cha faili yaani ukubwa

  7. Jinsi ya kuzuia aina maalumu ya mafaili

  8. Jinsi ya kuthibitisha faili

  9. Jinsi ya kubadili jina la faili

  10. Jinsi ya ku upload kwenye taarifa kwenye database. 

  11. Jinsi ya ku upload blob file kwenye database 

  12. Jinsi ya kujuwa error code zinazotokea na maana yake

 

Kutokana na ukubwa wa somo hili tutaliendeleza katika sehemu kadhaa. 

Kwanza kabla ya kuanza somo unatakiwa uhakikishe kuwa server yako inakubali ku upload. Kawaida server zote zinakuwa automatic zinaupload ila endapo haitakubali basi ingia kwenye faili lililoandikwa php.in. Kisha tafuta falipoandikwa file_uploads = On  kama pamewekwa off weka on kisa save.

  

  1. Jinsi ya kuandaa HTML form

Uandaaji wa hii fomu hauna utofauti na tulivyojifunza kwenye mafunzo ya html. Form yako itakuwa na infut type file. Ambapo itakuhitaji uchaguwe faili. Kitu cha tofauti ni kuwa attribute ya fomu imeongezeka moja ambayo ni enctype ambayo ni attribute itakayofahamisha kuwa fomu hii inakusanya data za aina nyingi. Hivyo inakuwa kama hivi enctype="multipart/form-data"

 

   

 

Form nzima ya html itakuwa fupi ti kama hivi

 

   Select Image File:

   

   

 

 

 

  1. Kupata taarifa za faili

Unahitaji kujuwa taarifa mbalimbali kuhusu faili unalotaka ku ipload. Taarifa hizo ni kama:-

  1. Ukubwa wa hilo faili yaani lina MB ngapi

  2. Aina ya hilo faili mfano kama ni picha au audio

  3. Jina la hilo faili yaani linaitwaje

  4. Pahali linapopatikana hilo faili yaani kwa sasa lipo kwenye folda gani

Kujuwa taarifa hizi na nyinginezo utahitajika kutumia global variable $_FILES[];

Ndani ya hayo mabano utaweka name ulioichaguw akutoka kwenye user input ya kwenye html form. 

 

Kwa mfano kwenye form yetu hapo name tumeweka myFile kama inavyoonekana hapo    Baada ya hapo utaweka mabano mengine ambayo ndio yatatupatia taarifa tunayotaka. Kwa mfano kama tunataka kujuwa ukubwa wa faili tutaweka [“size”]. Mfano wa variable nzima itakuwa hivi $_FILES['myFile']['size'];Hivyo basi ili kupata taarifa hizo unaweza kutengeneza variable kama hivi:-

// 1. kujuwa jina la faili

$fileName = $_FILES['myFile']['name'];

// 2. kujuwa ukiubwa wa faili

$fileSize = $_FILES['myFile']['size'];

// 3. kujuwa aina ya faili

$fileType = $_FILES['myFile']['type'];

// 4. kujuwa mahala lilipo link yake

$fileLocation = $_FILES['myFile']['tmp_name'];

// 5. Kujuwa error code

$errorCode = $_FILES['myFile']['error'];

 

Kuna taarifa ingine ambayo tunatakiwa tuipate nayo ni file extension. Hizi ni zile kama .mp4, .pdf, .mp3, .php, .doc na kuendelea. Hivyo tutahitajika kujuwa taarifa hizi ili kuweza ku dhibiti ku upload. Taarifa hii kuipata kwake ni tofauti na hizo zilizotangulia. Hii utaipata kwa kutumia function inayoitwa pathinfo();Kisha itakuwa na parameta 2 ambazo ni jina la faili ambalo kwa maelezo ya hapo juu tumetumia variable $fileName kisha parameta nyingine ni PATHINFO_EXTENSION           

// 6. Kujuwa file extension

$fileextension = pathinfo($fileName, PATHINFO_EXTENSION);

 

3. Kuonyesha taarifa hizi kwenye browser

Sasa hatuwa iliyobaki ni kuweza ku onesha hizi taarifa kwenye browser yako. Endapo utaweza kuonyesha basi itakuwa rahisi kuweka kwenye database yako. Sasa kuonyesha hizi taarifa tutatumia echo.

 

//kujuwa jina la faili

$fileName = $_FILES['myFile']['name'];

// kujuwa ukiubwa wa faili

$fileSize = $_FILES['myFile']['size'];

//kujuwa aina ya faili

$fileType = $_FILES['myFile']['type'];

//kujuwa mahala lilipo link yake

$fileLocation = $_FILES['myFile']['tmp_name'];

//Kujuwa error code

$errorCode = $_FILES['myFile']['error'];

//Kujuwa file extension

$fileextension = pathinfo($fileName, PATHINFO_EXTENSION);

 

//kuonyesha taarifa kwenye browser

echo "Filename: " . $fileName."
";

echo "Type : " . $fileType ."
";

echo "Size : " . $fileSize ."
";

echo "Temp name: " . $fileLocation."
";

echo "Error : " . $errorCode . "
";

echo "Extension:". $fileextension . "
";

 

 

4. Isset Function

Sasa hapa kuna kitu kingine inabidi tujifunze kabla ya kuendelea mbele. Kama uta run code hizo mwanzo kabisa kabla ya ku upload mafaili utaletewa error nyingi kuwa variable bado undefined kama unavyoona kwenye picha hapo juu. Ili kutatuwa tatizo hili tutatumia function inayoitwa isset()Ambayo itakuwa na parameta moja  nayo ni hile name ya ile input ya ku submit file kwenye html form. Kwa mujibu wa form yetu hapo juu name yetu ilikuwa submit hivyo function hii itakuwa isset($_POST["submit"])

       

Kazi ya function hii ni kiutest kama input ina kitu ama haina kitu. Hivyo itasaidia kupunguza error kwa kuwa baada ya kuwa variable kuambiwa undefined zenyewe zitapewa null na kubakia kama zilivyo. Sasa kwa kuwa function hii inatest uwepo wa data baada ya ku submit, hivyo tutatumia if hivyo itakuwa katika sura hii if(isset($_POST["submit"])) {}

Ndani ya hayo mabano {} ndipo kutakaa code zako. 

 

Code zote zitakuwa hivi:-

 

 

   

upload

   

 

 

 

 

   Select File:

   

   

 

 

 

 

 

if(isset($_POST["submit"])) {

//kujuwa jina la faili

   $fileName = $_FILES['myFile']['name'];

// kujuwa ukiubwa wa faili

   $fileSize = $_FILES['myFile']['size'];

//kujuwa aina ya faili

   $fileType = $_FILES['myFile']['type'];

//kujuwa mahala lilipo link yake

   $fileLocation = $_FILES['myFile']['tmp_name'];

//Kujuwa error code

   $errorCode = $_FILES['myFile']['error'];

//Kujuwa file extension

   $fileextension = pathinfo($fileName, PATHINFO_EXTENSION);

 

//kuonyesha taarifa kwenye browser

   echo "Filename: " . $fileName . "
";

   echo "Type : " . $fileType . "
";

   echo "Size : " . $fileSize . "
";

   echo "Temp name: " . $fileLocation . "
";

   echo "Error : " . $errorCode . "
";

   echo "Extension:" . $fileextension . "
";

}

?>

Mfano wa matokeo ya code hizo:

Mpaka kufika hapo tumeweza kupata taarifa zetu za faili. Sasa nikueleze kidogo kuhusu error code. Kama unavyoona hapo juu error code ni 0. Hii ina maana faili halina shida yeyote. Endapo ingekuwa tofauti na hapo basi ingelikuwa ni shida. Baadhi ya error nyingine zinaweza kutokea wakati wa ku upload.sasa tutaendelea hatuwa ya 3 ambayo ni ku upload faili.

 

  1. JINSI YA KU UPLOAD FILE

Hapa sasa kuna taarifa nyingine tunatakiwa tuiongeze kwenye zile data zetu nayo ni folda ambalo tunataka mafaili yetu yawe yana kaa baada ya kuwa uploaded. Sasa tutatengeneza folda kwenye kwa mfano tuliite upload. Hivyo hapo ndipo ambapo mafaili yetu yatakwenda kukaa. Kisha tutatengeneza variable ya kuwakilisha hilo folda. Mfano $folda = "upload/"; 

    

Ili ku upload file tutatumia function ya move_uploaded_file()Hii function ndio hasa hutumika ku upload faili. Function hii ina parameta kuu 2 ambazo ni lazima ziwepo. Kwanza ni locatio ya faili kwa sasa ukiangalia kwenye data zetu hapo juu tumetumia variable ya $fileLocation, parameta nyingine ni folda ambalo faili litakwenda kuwekwa. Parameta hii sio lazima. Kwa maana usipoiweka faili litabakia kwenye root folda yaani folda ambalo hiyo ukurasa wenye code upo. Parameta ya tatu ambayo ni lazima ni jina la faili. Katika data zetu hapo juu jina la faili nimelipa variable $fileName. Kwa mfano function hii itakaa hivi move_uploaded_file($fileLocation, $folda.  $fileName)

 

Kwa kuwa hapa tutataka kuangalia kuwa je faili lipo uploaded ama bado hivyo tutatumia if…..else condition. Ili kiwa upload imefanikiwa itatuambia successful na vinginevyo iseme unsuccessful. Hivyo code nzima itakuwa hivi

if (move_uploaded_file($fileLocation, $folda.  $fileName) ) {

   echo "successful";

} else {echo "unsuccessful";

}

 

Kama utaweka code hizo chini ya pale tulipoishia na uka run utaweza ku upload file. Mfano mimi ni kama hiyo picha hapo chini

 

  1. Kubadili jina

Utaona hapo changamoto kuwa hiko jina la faili kama limeandikwa kwa kuwacha nafasi linakuwa hivyo hivyo kitu ambacho sio kizuri. Hivyo tunataka kubadili baada ya alama za barabarani iwe alama-za-barabarani. Kufanya hivi utatumia function ya ku replace ambayo tulishajifunza katika level 1 mafunzo ya php. Hiyo variable inayobeba jina utaifany akama parameta ya function hii. Sasa utatafyta kila ambapo pamerukwa nafasi na ku replace na alama - ama unaweza ku replace na alamma yeyoye ama namba amba herufi kadiri utakavyo.

 

Kama utakuwa umeweka vyema vbasi code zako zitaonekana hivi:

if (move_uploaded_file($fileLocation, $folda. str_replace(" ", "-", $fileName) )) {echo "successful";

} else {echo "unsuccessful";

}

 

 

 

 

  1. Ongeza vitu kwenye jina

Unaweza pia kwenye hilojina kuongeza tarehe ama kuweka maneno amba kuweka namba. Kwa mfano tunataka hilo faili lianze jina kwa kuandika tyarehe ya siku lilipotumwa. Mfano hapo faili letu liandike 27-9-2022-alama-za-barabarani.jpeg. Kufanya hivi utaongeza parameta yenye hiyo tarehe nyuma ya hiyo parameta yenye jina la faili. Mfano function ya tarehe itakuwa hivi date('d'.'-'.'m'.'-'.'y'.'-')Kwa ujumla code yote itakuwa hivi 

if (move_uploaded_file($fileLocation, $folda. date('d'.'-'.'m'.'-'.'y'.'-'). str_replace(" ", "-", $fileName) )) {echo "successful";

} else {echo "unsuccessful";

}

 

  1. Jinsi ya kuangalia kama faili tayari lipo:

Sasa tunataka kujuwa kama faili tayari lipo ituambie na endapo halipo basi iendelee ku upload. Hii itatusaidia kuzuia ku upload kitu kimoja kila wakati, Sasa hapa tutakwenda ku test jina. Yaani je jina la hilo faili tayri lipo?. Kufanya hivi tutatumia function inayoitwa file_exists()Nayo itabeba parameta mbili, ya kwanza ni jina la folda ambalo faili linakwenda ku uploadiwa na ingine  ni jina la faili hivyo itaonekana kama hivi file_exists($folda.$fileName)

 

Sasa hapa ndipo tunaingia sehemu tata. Maana hapa tunataka kuzuia kama faili lipo basi ikataliwe ku upload tena. Endapo hatutafanya hivi faili lita uploadiwa tena na kuwa overwriten. Hivyo basi itatubidi tu test kama faili lipo ikataliwe na kama halipo basi function ua ku upload ifanikiwe. Hapa tutatumia if ….. Else.

 

Endapo faili lipo basi iseme sorry file exist, na endapo faili halipo basi iendelee ku upload. Code inaweza kuwa hivi 

//kuangalia kama faili lipo

   if (file_exists($fileName)) {

       echo "sorry file exist";

   }

     

 

Sasa kuna kitu tunatakiwa hapa tuwe makini nacho. Kamas unakumbuka tumebadili jina la faili hapo hapo mwanzo. Natumelifanya liwe na tarehe kisha sehemu ambazo zipo wazi ziwe na alama hii - hivyo basi wakati wa kuangalia kama faili lipo au halipo itatubidi kuweka hivyo vitt tulivyoongeza ili kupata mfanano. Kwa hiyo code zitaonekana hivi

//kuangalia kama faili lipo

   if (file_exists($folda.date('d' . '-' . 'm' . '-' . 'y' . '-') . str_replace(" ", "-",$fileName))) {

       echo "sorry file exist";

   }

 

...



Kama unahitaji kuuliza maswali Bofya hapa





           

Je! umeipenda hii post?
Ndio            Hapana            Save post

Rajabu Tarehe 2024-05-10 14:53:23 Download PDF     Share On Facebook or Whatsapp Imesomwa mara 154


Sponsored links
👉1 Kitabu cha Afya     👉2 kitabu cha Simulizi     👉3 Kitau cha Fiqh     👉4 Madrasa kiganjani    

Post zifazofanana:-

PHP somola 63: Jinsi ya ku connect database kwa kutumia PDO na faida zake
Katika soo hili utakwenda kujifunza umuhmu wa kutumia PDO kwenye PHP kwa ajili ya kutumia database. Soma Zaidi...

PHP somo la 60: namespace na matumizi yake kwenye PHP
Katika somo hili utakwendakujifunza concept ya namespaces na jinsi inavyosaidi kwenye OOP Soma Zaidi...

PHP - somo la 8: jinsi ya kuandika constant kwenye PHP
Katika somo hili utakwenda kujifunza jinsi ya kuandika constant kwenye PHP. Pia utajifunza utofauti wake na variable Soma Zaidi...

PHP somo la 64: Jinsi ya kutengeneza database na kuingiza data kwa kuumia PDO
Katika somo hili utakwenda kujifunza jinsi ya kutumia PDO kutengeneza database, kuteneneza table na kuingiza data moja na zaidi ya moja. Soma Zaidi...

PHP BLOG - somo la 7: Jinsi ya kutengeneza ukurasa wa kusoma post kwenye blog
HApa utakwenda kujifunza sasa namna ya kuzisoma post kutoka kwenye blog Soma Zaidi...

PHP - somo la 46: Nini maana ya cronjob na matumizi yake
Katika somo hili utajifunza kuhusu cronjob na matumizi yake kwenye PHP Soma Zaidi...

PHP - 9: Jinsi ya kuandika array kwenye PHP na kuzifanyia kazi
Katika somo hili tutakwenda kujifunza kuhusu array kwenye php, na jinsi zinavyoweza kufanya kazi Soma Zaidi...

PHP somo la 53: class inheritance kwenye PHP Object Oriented Programming
Katika somo hili utakwenda kujifunza kuhusu class inheritance kwenye object oriented programming. Soma Zaidi...

PHP BLOG - somo la 12: Jinsi ya kutumia prepared statement kwenye kusoma post za blog
Katika somo hili tutakwenda kutumia prepared ststement kwenye ku fetch data kutoka kwenye database. Soma Zaidi...

PHP - somo la 30: Baadhi function za PHP
Katika somo hili utakwenda kujifunza jinsi ya ktumia baadhi ya function za php Soma Zaidi...

PHP - somo la 38: Jinsi ya ku upload mafaili zaidi ya moja kwa kutumia PHP
katika somo hili utajifunza jinsi ya ku upload multiple file yaani mafaili mengi kwa wakati mmoja kwa kutumia PHP Soma Zaidi...

PHP - somo la 27: aina za variable kwenye PHP
Katika somo hili utakwenda kujifunza aina kuu 3 za variable katika PHP mabzo ni local variable, global variable na static variable. Soma Zaidi...