Komputeran, Cureyên pelên
File upload to the server: PHP
Daxistina files bi rêya PHP - doza pir balkêş e, ji bo ku divê pir bi baldarî nêzî bibe. Li ser Înternetê tu wergerandî komek ji pêkanîna file upload bibînin, lê hemû yên wan ne baş in û hevdîtinê qaîdeyên ewlekarîyê.
Tiştên weha ji bo anîna ji bo encamê de, heta eger ew digire demeke dirêj. Ger tu valahiyek bihêle li code, paşê tevahiya server xwe dikare bidomîne.
ewlekarî
Bi PHP file upload to the server is derve pir bi hêsanî hatiye lidarxistin. Koda ku pir kurt û sade ye. Just a couple of lines. Lê belê, ev rêbaza xeter e. dem û xetên ji code dûr ji ewlekariya çiqas bêtir.
The xeterê de ye ku, eger hûn teftîşan çi ne, ti êrîşkarek dikare skrîptên xwe li ser server we bar. Di vê rewşê de jî, dê bikaribin bi temamî heye. Ew dikarin çi ew dixwaze:
- jê bibî heye;
- delete files malperên;
- xeyrandin di files malperên;
- lê zêde bike ad te ji malpera te;
- download vîrûs;
- beralî hemû bikarhêneran li ser malperên xwe;
- û gelek tiştên din ên ku bên hişê êrîşkarek.
Tu divê herdem ku hewldanên ji bo download a file ji bo bikarhênerê. Ji bo nimûne, eger tu images tenê upload, wê pêwîst, nehat ku file an image rastir e. Na, tu dê tiştekî download.
Tam çawa ji bo cîbicîkirina piştras kirin, ew bê bi tîpê muayene direct bo barkirina wêneyan li banî tê wê,.
Afirandina forma PHP
forma upload file pir hêsan e. Missing pişkoka browse û upload bişkokên.
De rave dike ka ji bo afirandina formên ne dê, ji ber ku hêsan e. fermanên din li hizir dikin ku hûn ji niha ve xwedî têgehên bingehîn yên HTML (na, tu dê ne be bo zaniyarîy digerî li ser daxistina li ser PHP).
Lê belê girîng e ku ev welat di formê de divê hûn ji bo lê zêde bike taybetiyê enctype de.
Wekî din, daneyên li ser handler file ne, wê bên veguhestin.
Çawa ew divê bixebitin?
Piştî ku ew dê pêwîst be bo girtina riya ku file, dikeve.
Eger rêya xuya nake, dîsa pêkanîna vê çalakiyê de.
Piştî bibî li ser handler download Pel dikare ti agahiyan bide.
Ji bo nimûne, tu dikarî li ser xeta ku hatiye nivîsandin, ku file e "da û da" bi navê hatiye dîtin bi serkeftî bi "bi vî rengî û bi vî rengî" Peldanka uploaded binivîse. Bê guman, navê file tim cuda dê bê dayîn.
Bi gelemperî, ev agahî ji bo Koda neqandina bikaranîn. Bi vî awayî mimkun e ku kontrol bike ku agahîyên ku tê û dinivîse di pêristê de tê xwestin pêk bê. Ku tê, heta ku navê pelê be, bilêv ne. Ji ber ku ev agahî extra ku user ne hewce ye.
Ev jî wateya ji bo encam bi navê tenê eger user downloads multiple files. Bi vî rengî berdewam e, çav hinekî din. Werin em li pêşiya xwe bi dest ne.
ligorî
Di PHP file upload to the server pêwîst settings hin, ku divê di file php.ini kirin. Ev file contains gelek mîhengên. Ew hemû em ne hewce ne. file_uploads, upload_tmp_dir û upload_max_filesize: Em bala sê xetên in.
Ji kerema xwe not bikin ku ev mîheng dê hemû malperên xwe li ser pêşkêşkara bandorê, ne bi tenê ji tu kesî. Ji ber vê yekê, ji bo rewşa mezintirîn a li ser bingeha wê yekê ku tu dê ji bo barkirina bikarhênerên. Ev nayê pêşniyarkirin ji bo danîna pir mezin e.
Piştî ku nirxên ku tu guhertinek di van Parametreyên, divê hûn ji nûve server. Wekî din mîheng dê bandora xwe ne, wek ku ew di wê demê de ji load server xwend.
Tu dikarî vê li konsolê bi girêdana bi rêya SSH bo server bikin. Hema di xizmetê de fermana ji nû ve httpd bikevinê, û paşê mîheng dê bandora xwe bigirin.
Din rêbaza - ji nû ve bi rêya ISP-panel an jî bi riya billing provider panel.
file Array
Di PHP upload pel ji aliyê array $ _Files kirin. Ev dihewîne hemû agahiyên li ser pelên ku em download.
Bo bînînî çi agahî ku di array, bes ji bo nivîsandinê di handler pelê li jêr de.
ketanên hemû pelan hilbijêrin û pêl "bar bike." Li ser rûpel handler dê agahiyên ku di $ _Files profîlek hegera. The variable bi temamî bi tîpên mezin hatiye nivîsîn. PHP - a-hesas ziman.
Wek ku hûn dibînin, di vê array heye gelek ji zeviyên. Hemû ji wan ji bo me girîng in. Li qadê ya yekem de jî navê pelê di forma li ku ew li ser komputera te de tê bikaranîn.
Stûna type xwe dişinî file type. Tmp_name warê beramberî bi navê Pela demdemî. Piştî ku di dawiya vê skrîptê de dê werin jêbirin.
Li qadê error dihewîne an error code. Ev hinekî zêdetir bû. Size - size in bytes.
de çewtî
bi saya file upload PHP hatiye lidarxistin e, her tim ji aliyê error code re çûn. An Peyama çewtiyê ketin di "error". The error screenshot sifir e.
nirxê hemû şaşî û hizrên xwe:
Li vir a form test ku daxistina file, ku nîşan dide sînorekî ji meblexa of the file uploaded e.
PHP: file script upload
Çawa ku di hemû derve di pratîkê de pêk? Di PHP file upload fermana copy pêk tê. dosya çavkanî û file destination - Ger bala we li ser pirsa ka ji bo download a file ne, ku bersiva copy- sade, ku bi kar tîne du Parametreyên e.
Lê, wek ku li jor diyar kir, ku ew ne bi be ji ber sedemên ewlekarî sînorkirî ye. Ji bo nimûne, kontrol kîjan cûre file em keştiyê, tu cureyê qadê di array $ _Files bi kar tînin. Pêşîn, ka em bi teftîşê re eleqedar, û paşê bar on ji script full
Werin, em dibêjin ku dixwazî bi rê bikarhênerên bo barkirina wêneyan de bi biryara bi tenê GIF, JPEG an PNG. Nîşan dide ku ew dikarin wek vê be.
Eger ($ _ FILES [ 'file_upload'] [ 'type'] = "image / gif") {
echo "Mixabin, em piştgiriya bi tenê daxistin Gif-Files";
exit;
}
Heke tu dixwazî Gemiyek hemû 3 cureyên lê digerî, bi şertê din jî ji bo cureyê din ên image lê zêde bike.
copy (image 1, image 2): ji ber digire, wek vê kirin.
Di rewşa me de, dema ku kar tê daxistin ji PC bo server, da hûn dikarin
copy ($ _ FILES [ 'file_upload'] [ "tmp_name"], "1.jpg")
e ku, li file wê bi navê 1.jpg li kopîkirin. Ev e bi temamî ne rast e. Di vê rewşê de jî, bi tenê mînakek e. The name file e herdem pêwîst ji bo diyar cuda, û diyar pêveka, li gor dosyayê de.
Biryarê li ser dirêjkirina dikare bi awayên cuda. hemû Ev li ser pêşvebirinê yên erudition girêdayî ye. Yek ji teyra riyên (ferqeke ji çapêye ji seconds) biryarê li ser dirêjkirina - ev koda din e.
$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ "name"]);
$ Ext = $ path_info [ 'extension'];
The variable $ li ext em dê dirêjkirina xwestin bikim. A file name dikare li bikaranîna md5 random danîn. Ger tu plan ji bo download gelek ji files, çêtir e ku ji wan re keştiyê ji bo peldankên cuda. Lewma, ev dê bibe hawetire. Bi taybetî jî, eger tu dixwazî parzin bike.
ku daxistina code dê bibe wekî wiha ne.
/// Bi photo
Eger ($ _Files [ 'photo1'] [ 'tmp_name'] == null)
{
echo ( "
Unknown file. strong> p>
exit; } ///. Dibêjin, hûn ji bo her proje li ser pêşkêşkara destûr bê dayîn ji bo barkirina pelên mezin (video), lê ne bi tenê dikarî pictures li wir, û bikarhênerên divê ji bo sînorkirina Eger (($ _Files [ "photo1"] [ "size"]> 1024 * 1024 * 2) { ?> herî zêde size destûr of 2 MB strong> exit; } // peldankên biafirîne // peldankeke ya meha niha Eger (! file_exists ( "img /". date ( "M"))) { mkdir ( "img /" date ( "M").); } // peldankeke yên rojê de niha Eger (! file_exists ( "img /". date ( "M"). "/". date ( "d"))) { mkdir ( "img /" date ( "M") "/" date ( "d") ...); } extension file /// $ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ "name"]); $ Ext = $ path_info [ 'extension']; /// filename berhem $ Id = md5 (date ( "YMd")); Eger (copy ($ _ FILES [ 'photo1'] [ "tmp_name"], "img /". date ( "M"). "/". date ( "d"). "/". $ id. $ ext) ) { echo ( "Pel bi serkeftî hate barkirin."); } /// tu bêtir çalakî (entry di nav HTMLê da heye, û bi vî awayî li ser. N.) } Cîhek files multiple (PHP), bi rîya warên din di form pêk tê. Ev rêbaz pir baş ne, wekî ku digre hejmara files to download. Ji bilî vê, ev tê hesibandin form xerab di bernameyên. Hewil bide ku tu her tiştî dînamîk. Vebijêrka îdeal - ev hilbijartina ji hejmareke mezin ji files di cih de bi tikandina bişkoka yek e. Ji bo vê jî, biafirînin shape like this code. <Çîna Input = "form_upload" type = "submit" name = "upldFile" value = "zêde" /> P> Form> Zanibe ku ji bilî piralî yên ku gotina, û bi navê wek array [] dayîn. Di vê rewşê de, array $ _Files wê hinekî cuda. Tu dê array ji array bistînin. Ji bo ceribandinê dikarî dîsa bi kar var_dump ($ _ FILES); Hemû pelên te wê di array like this danîn: Di nav parantezê de hejmara file di array hatiye nivîsîn. Muhlet ji sifir. Em bi wan re bi heman awayî, tenê di dewra bipirsin û ji aliyê gel Koda jor-şirove li dawiya index got, [i $]. $ I = 0; dema ($ _Files [ "file1"] [ "name"] [$ i] <> '') { /// bi îmêlî vrêkey code } Bi vî awayî, hûn dê bi riya a file upload PHP ji server li yek cycle bê dubarekirina nehewce yên qanûna bibe, wek ku piranî doza eger tu bi kar version bi hejmara statîk ji files (cara photo). files multiple
Similar articles
Trending Now