Mga kompyuterMga Type sa File

PHP: pag-upload sa file ngadto sa server

Ang pag-download sa mga file pinaagi sa PHP usa ka makaiikag nga butang, nga kinahanglan nimo nga duolon pag-ayo. Sa Internet, makakaplag ka daghang mga ehemplo sa pagpatuman sa mga pag-download sa file, apan dili tanan niini maayo ug makatagamtam sa mga lagda sa seguridad.

Ang maong mga butang kinahanglan nga pagahatagan ngadto sa katapusan, bisan kung kini nagkinahanglan og taas nga panahon. Kon magbilin ka og usa ka lungag sa code, nan ang imong tibuok nga server mahimong nameligro.

Kasegurohan

Ang paggamit sa PHP, ang pag-upload sa mga file sa server dali ra. Ang code mubo kaayo ug yano. Adunay duha ka mga linya. Apan ang maong pamaagi peligroso. Diin mas daghang oras ug linya sa code ang gigasto sa seguridad.

Ang kapeligro mao nga kon wala ka'y bisan unsang pagsusi, ang bisan kinsa nga tig-ataki makahimo sa pag-download sa ilang mga script sa imong server. Sa kini nga kaso, siya adunay hingpit nga agianan. Makahimo siya bisan unsay iyang gusto:

  • Pagtangtang sa database;
  • Pagtangtang sa mga file sa site;
  • Usba ang mga file sa site;
  • Idugang ang imong mga ad sa imong site;
  • Pag-download sa mga virus;
  • Pag-redirect sa tanang tiggamit sa ilang mga site;
  • Ug labi pa nga mahitabo ang kawatan.

Kanunay mong gikinahanglan nga susihon kung unsa nga matang sa file nga gisulayan sa tiggamit. Kon, pananglitan, nag-upload ka lamang og mga litrato, kinahanglan nimo nga susihon nga kini nga file mao gayud ang hulagway. Kay kon dili, ikaw puno sa bisan unsang butang.

Sa unsa nga paagi ang pagpatuman sa pagsulay ipakita sa ulahi, sa dihang direktang susihon ang file download script.

Pagmugna og usa ka porma sa PHP

Ang porma sa pag-download sa file yano ra kaayo. Igo na sa mga button sa pag review ug pag-download sa mga buton.

Dili kita maghulagway sa pagmugna sa porma, tungod kay kini sayon. Ang dugang nga mga panudlo maghunahuna nga ikaw adunay mga batakang konsepto sa HTML (kung dili ikaw dili mangita alang sa kasayuran mahitungod sa loading sa PHP).

Apan timan-i nga ang pagbalhin sa datos sa porma, kinahanglan nimo nga idugang ang enctype attribute.

Kay kon dili, ang datos mahitungod sa file handler dili mapasa.

Giunsa kini nga buhat?

Sa diha nga ikaw nag-klik sa browse button, kinahanglan ka magbukas sa usa ka bintana, diin ikaw hangyoon sa pagpili sa usa ka file.

Human niana, ang agianan mopakita diin nahimutang ang file.

Kung ang dalan dili makita, nan buhata kini pag-usab.

Human sa pag-klik sa download button uban sa file sa handler, mahimo nimo ihatag ang bisan unsang impormasyon.

Pananglitan, mahimo ka magsulat og usa ka linya nga nag-ingon nga ang usa ka file nga "sama ug ingon nga" nga ngalan malampuson nga gi-upload sa usa ka "ingon-ug-ingon nga" folder. Siyempre, ang pangalan sa file kanunay nga lahi.

Kasagaran, kini nga detalyadong kasayuran gigamit sa pag-debug sa code. Niining paagiha, imong masusi nga ang data gibalhin ug ang rekord moadto sa direktoryo nga imong gikinahanglan. Nga mao, bisan ang ngalan sa file wala magpaila. Tungod kay kini dugang nga kasayuran nga wala gikinahanglan sa tiggamit.

Makatarunganon ang pagpagawas sa mga datos mahitungod sa ngalan lamang kon ang tiggamit nagadala sa daghang mga file. Atong ikonsidera kini nga kaso sa dugang pa. Dili kami modagan sa unahan.

Pagpahiangay

Sa PHP, ang pag-upload sa usa ka file ngadto sa usa ka server nagkinahanglan og piho nga mga setting nga himoon sa php.ini file. Adunay daghan nga mga setting sa kini nga file. Kitang tanan wala magkinahanglan niini. Interesado kami sa tulo ka linya: file_uploads, upload_tmp_dir ug upload_max_filesize.

Palihug timan-i nga kini nga mga settings makaapekto sa tanan sa imong mga site sa server, dili usa kanila. Busa, ibutang ang maximum nga sukat pinasukad sa kung unsa ang imong pag-upload sa mga tiggamit. Dili kini girekomendar nga ibutang ang sobra ka dako nga mga hiyas.

Human nimo usbon ang mga bili niini nga mga kahimtang, ang server kinahanglan nga pag-reboot. Kay kon dili, ang mga setting dili magamit, tungod kay kini gibasa sa panahon sa pag-load sa server.

Mahimo nimo kini sa console pinaagi sa pagkonekta pinaagi sa SSH sa server. Igo na ang pagsulod sa command service httpd restart, ug human niana ang mga setting magkatakus.

Ang laing paagi mao ang pagsugod pagbalik sa panel sa ISP o pinaagi sa billing panel sa provider.

Array uban sa file

Sa PHP, ang file puno gamit ang $ _FILES array. Naglangkob kini sa tanang impormasyon bahin sa mga file nga atong i-download.

Aron makita kung unsa nga matang sa kasayuran ang anaa niini nga laray, kini igo nga isulat ang mosunod sa handler file:

Pagpili sa bisan unsang file ug i-click ang "Download." Ang pahina sa handler nagpakita sa impormasyon nga gitipigan sa $ _FILES. Ang pagkadibuho gisulat sa hingpit nga mga dagko nga mga letra. Ang PHP usa ka pinulongan nga sensitibo sa kaso.

Sama sa imong makita, adunay daghan nga mga natad sa niini nga laray. Tanan sila importante alang kanato. Ang una nga field nag-store sa ngalan sa file sa porma diin kini gigamit sa imong computer.

Ang tipo nga kolum nagpakita sa tipo sa file. Ang tmp_name field katumbas sa ngalan sa temporaryo nga file. Human mahuman ang script, kini matanggal.

Ang sayup nga natad nagbutang sa code sa sayop. Dugangan pa kini. Gidak-on ang gidak-on sa bytes.

Mga sayup

Ang pag-download sa usa ka file pinaagi sa PHP kanunay giubanan sa usa ka code sa sayop. Ang mensahe sa sayup gilakip sa natad sa "sayup". Sa screenshot, ang sayup nga zero.

Hunahunaa ang mga hiyas sa tanan nga mga sayop:

Sa ibabaw kini giingon mahitungod sa mga parameter, nga mahimo nga gitino sa naandan nga HTML.

Ania ang usa ka panig-ingnan sa usa ka porma sa pag-upload sa usa ka file, diin usa ka limitasyon ang gitino sa gidak-on sa file nga gi-upload.

PHP: file download script

Giunsa ang tanan gibuhat sa buhat? Sa PHP, ang file puno sa kopya nga command. Kon ikaw interesado sa pangutana kon unsaon sa pag-upload sa usa ka file, ang tubag kopyahon lang, nga naggamit sa duha ka parameter - ang source file ug ang destination file.

Apan, sumala sa gisulat sa ibabaw, kini dili limitado alang sa mga hinungdan sa seguridad. Pananglitan, aron masusi unsa nga matang sa file nga atong gibutang, mahimo natong gamiton ang field type sa array $ _FILES. Una, kini atong sulbaron uban ang usa ka pagsulay, ug dayon magpadayon sa tibuok nga sinulat

Ingnon ta nga gusto nimo nga magamit ang mga tiggamit sa usa ka litrato nga may resolusyon lamang sa GIF, JPEG o PNG. Mahimo nimong itakda kini nga sama niini.

Kung ($ _ FILES ['file_upload'] ['type']! = "Image / gif") {
Echo "Sorry, kami nagsuporta sa pag-download lamang sa Gif files";
Paggawas;
}

Kung gusto nimo ipadala ang tanan nga 3 nga klase, idugang lamang ang usa ka dugang nga kondisyon nga adunay laing matang sa larawan.

Ang pagkopya gihimo sama niini: kopya (file 1, file 2).

Sa atong kahimtang, kung ang trabaho naggamit sa pag-download gikan sa computer ngadto sa server, mahimo nimo kini

Copy ($ _ FILES ['file_upload'] ["tmp_name"], "1.jpg")

Kana mao, ang kopya ang kopyahon sa ngalan 1.jpg. Kini dili hingpit nga husto. Sa kini nga kaso, kini usa lamang ka ehemplo. Ang ngalan sa file kinahanglan nga ibutang sa lainlain nga paagi, ug ang extension kinahanglan nga ipatungod depende sa file.

Mahimo nimong ipasabut ang pagpalapad sa daghang mga paagi. Kini tanan nagdepende sa kahibalo sa developer. Ang usa sa labing paspas nga mga paagi (ang kalainan sa ikapulo sa mga segundo) sa pagdetalye sa extension mao ang mosunod nga kodigo.

$ Path_info = pathinfo ($ _ FILES ['photo1'] ["name"]);

$ Ext = $ path_info ['extension'];

Diha sa variable nga $ ext kita magtipig sa gikinahanglan nga extension. Ug ang ngalan sa file mahimong ibutang nga random gamit ang md5. Kon nagplano ka sa pag-download sa daghang mga file, mas maayo nga i-load kini sa lainlaing mga folder. Busa kini mahimong mas sayon. Ilabi na kung gusto nimo limpyohan.

Ang code nga i-download mao ang mosunod.

/ / / Adunay mga litrato

Kung ($ _FILES ['photo1'] ['tmp_name'] == null)

Ang

Balik ... ");

Paggawas;

}

///. Ingnon ta nga adunay permiso nga mag-upload sa mga dagkong mga file (video) alang sa usa ka proyekto sa server, apan adunay mga litrato lamang, ug ang mga tiggamit kinahanglan nga limitahan

Kung (($ _FILES ["photo1"] ["size"]> 1024 * 1024 * 2)

Ang

?>

Ang kinatibuk-ang gitugot nga gidak-on sa imahe mao ang 2 MB

Balik ...

Paggawas;

}

// paghimo og mga folder

// paghimo sa karon nga folder sa bulan

Kon (! File_exists ("img /". Petsa ("M")))

Ang

Mkdir ("img /". Petsa ("M"));

}

// paghimo og usa ka panid sa kasamtangan nga adlaw

Kon (! File_exists ("img /". Petsa ("M"). "/". Petsa ("d")))

Ang

Mkdir ("img /". Petsa ("M"). "/". Petsa ("d"));

}

/ / Extension sa file

$ Path_info = pathinfo ($ _ FILES ['photo1'] ["name"]);

$ Ext = $ path_info ['extension'];

/ / Pagmugna sa ngalan sa file

$ Id = md5 (petsa ("YMd"));

Kung (kopya ($ _ FILES ['photo1'] ["tmp_name"], "img /" date ("M"). "/" )

Ang

Echo ("file nga malampuson nga na-download");

}

/// bisan unsang mga aksyon (pagsulat sa database, ug uban pa)

}

Daghang mga file

Ang pag-download sa daghang mga file (PHP) mahitabo gamit ang dugang nga mga laraw sa porma.

Kini nga pamaagi dili maayo, tungod kay kini naglimite sa gidaghanon sa mga file aron ma-download. Dugang pa, kini giisip nga usa ka dili maayo nga tono sa programming. Paningkamot nga buhaton ang tanan nga dinamiko.

Ang sulundon nga kapilian mao ang abilidad sa pagpili sa usa ka dako nga gidaghanon nga mga file sa makausa pinaagi sa pagputol sa usa ka buton.

Tungod niini, naghimo kita sa porma nga adunay kini nga kodigo.

Timan-i nga ang pulong nga multiple gidugang, ug ang ngalan gitawag nga array []. Sa kini nga kaso, ang $ _FILES array gamay ra kaayo. Makuha nimo ang usa ka han-ay sa han-ay.

Aron masusi, mahimo na nimo gamiton ang var_dump ($ _ FILES);

Ang tanan nimo nga mga file mahimutang sa laray nga sama niini:

  1. $ _FILES ["file1"] ["name"] [0]
  2. $ _FILES ["file1"] ["name"] [1]
  3. Ug sa ingon.

Sa parentheses, ang numero sa file sa array gisulat. Pag-ihap gikan sa wala. Giproseso namo sila sa samang paagi, ibutang lang ang loop ug, sa dihang ma-access ang code sa ibabaw, among idugang ang index [$ i] sa katapusan.

$ I = 0;

Samtang ($ _FILES ["file1"] ["ngalan"] [$ i] <> '')

Ang

/ / Pagsal-ot sa kodigo sa ibabaw

}

Sa ingon, kinahanglan ka mag-download sa mga file pinaagi sa PHP sa usa ka siklo, nga wala kinahanglana nga pag-uli sa code, ingon sa kasagaran ang kaso kon mogamit ka sa usa ka bersyon nga adunay static nga gidaghanon sa mga file (ang katapusan nga litrato).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ceb.birmiss.com. Theme powered by WordPress.