TölvurSkráargerðir

PHP: skrá hlaða á þjóninum

Að hlaða niður skrám í gegnum PHP - mjög áhugavert mál, sem verður að nálgast mjög vandlega. Á Netinu er hægt að finna fjölmörg dæmi um framkvæmd skrá hlaða, en ekki allir af þeim eru góð og hitta öryggisreglur.

Slík atriði þurfa að koma að niðurstöðu, jafnvel þótt það tekur langan tíma. Ef þú skilur skarð í númerið, þá allur framreiðslumaður geta verið í hættu.

öryggi

Með PHP skrá hlaða til the framreiðslumaður fer fram alveg auðveldlega. Kóðinn er mjög stutt og einfalt. Bara a par af línum. Hins vegar er þessi aðferð er hættulegt. Miklu meiri tíma og línur af kóða í burtu til öryggis.

Hættan er sú að ef þú gerir það ekki skoðun, allir árásarmaður gæti hlaða forskriftir þeirra á vefþjóninum þínum. Í þessu tilfelli verður það hafa fullan aðgang. Hann getur gert hvað sem hann vill:

  • eyða gagnagrunni;
  • eyða skrám síður;
  • breyta skrám síður;
  • Bæta auglýsinguna til þinn website;
  • sækja vírusa;
  • beina öllum notendum á síðum sínum;
  • og margt annað sem kemur upp í hugann árásarmaður.

Þú ættir alltaf að athuga að tilraunir til að hlaða niður skrá fyrir notandann. Til dæmis, ef þú hlaðið inn myndum bara, það er nauðsynlegt að ganga úr skugga um að skrá er mynd nákvæmlega. Annars verður þú sækja neitt.

Nákvæmlega hvernig á að framkvæma sannprófun, það verður sýnt, með beinni skoðun handrit að hlaða inn skrám.

Búa til PHP eyðublað

skrá hlaða form er mjög einfalt. Vantar Browse hnappinn og hlaða hnappa.

Lýsir hvernig á að búa til form ekki, vegna þess að það er auðvelt. Frekari leiðbeiningar gera ráð fyrir að þú ert nú þegar helstu hugtök HTML (annars væri ekki hægt að leita að upplýsingum um niðurhal á PHP).

En athugið að gögn í formi sem þú þarft að bæta enctype eiginleiki.

Annars gögn um skrá stjórnandinn verður ekki send.

Hvernig það ætti að virka?

Þegar þú smellir á Browse hnappinn sem þú ættir að sjá reit þar beðinn um að velja skrá.

Eftir að það verður að vera nauðsynlegt að fá leið þar sem skráin er staðsett.

Ef leið birtist ekki framkvæma aðgerð aftur.

Eftir því að smella á the sækja skrá stjórnandinn getur gefið einhverjar upplýsingar.

Til dæmis getur þú skrifað línu sem segir að skráin er "svo og svo" nafnið hafi verið hlaðið upp á "svona og svona" möppunni. Auðvitað, the skrá nafn verður gefið og alltaf öðruvísi.

Venjulega, þessar upplýsingar eru notaðar til að kemba kóða. Þannig er hægt að staðfesta að gögn eru send og skrifar koma í viðkomandi skrá. Það er, jafnvel skrá nafn er ekki gefið upp. Þar sem þetta kostar upplýsingar sem notandinn þarf ekki.

Það er skynsamlegt að framleiðsla nafnið aðeins ef notandi niðurhal margar skrár. Slík er raunin, íhuga aðeins lengra. Við skulum ekki fá á undan okkur.

aðlögun

Í PHP skrá hlaða á þjóninum krefst ákveðnar stillingar, sem ætti að vera gert í php.ini skrá. Þessi skrá inniheldur mikið af stillingum. Þeir allir við þurfum ekki. Við höfum áhuga á þrjár línur: file_uploads, upload_tmp_dir og upload_max_filesize.

Vinsamlegast athugið að þessar stillingar munu hafa áhrif á öllum vefsvæðum þínum á þjóninum, ekki bara einhver. Þess vegna, til að stilla hámarks stærð byggt á þeirri staðreynd að þú verður að hlaða notendur. Það er ekki mælt með því að setja of stór.

Þegar þú breytir gildum í þessum þáttum, þú þarft að endurræsa þjóninn. Annars stillingarnar munu ekki taka gildi, eins og þeir lesa á þeim tíma af the framreiðslumaður hlaða.

Þú getur gert þetta í vélinni með því að tengja í gegnum SSH til the framreiðslumaður. Einfaldlega að slá inn skipunina þjónustu httpd endurræsa, og þá að stillingarnar munu taka gildi.

Önnur aðferð - að endurræsa gegnum ISP-pallborð eða í gegnum greiðslukerfi spjaldið fyrir hendi.

array skrá

Í PHP skrá hlaða er gert með því að array $ _FILES. Það inniheldur allar upplýsingar um skrár sem við sækja.

Til að sjá hvaða upplýsingar er að finna í fylkinu, nóg að skrifa í skrá stjórnandinn eftirfarandi.

Veldu hvaða skrá og smelltu á "Senda". Á dýraþjálfari síðu mun birta upplýsingar sem geymdar eru í $ _FILES. Breytan er skrifað alveg með hástöfum. PHP - tungumál næmur.

Eins og þú geta sjá, í þessu fylki er mikið af sviðum. Öll þau eru okkur mikilvæg. Fyrsta svæðið inniheldur skrá nafn í því formi sem það er notað á tölvunni þinni.

The tegund dálki tilgreindur skráargerð. Tmp_name reit svarar til nafns tímabundna skrá. Eftir lok handriti verður eytt.

The villa reitur inniheldur villu kóða. Þetta var svolítið lengra. Stærð - stærð í bætum.

villur

Fram í gegnum PHP skrá hlaða er alltaf í fylgd með villukóða. Villuboð inn í "villa". Skjámyndin villa er núll.

Fjalla um gildi allra villur:

Það var sagt hér að ofan um færibreytu sem hægt er tilgreindur í venjulegum HTML.

Hér er sýnishorn mynd til að sækja skrána, sem gefur til kynna takmörk á fjárhæð skránni.

PHP: skrá hlaða handrit

Eins og allt fram í reynd? Í PHP skrá hlaða kemur copy stjórn. Ef þú hefur áhuga á spurningunni um hvernig á að sækja skrá, svarið er einfalt copy-, sem notar tvær breytur - frumskrár og ákvörðunarstaður skrá.

En, eins og fram kemur hér að framan, það er ekki hægt að takmarkaður af öryggisástæðum. Til dæmis, kíkja hvers konar skrá við skip, er hægt að nota á sviði tegund í fylkinu $ _FILES. Í fyrsta lagi skulum takast á við skoðun, og þá hreyfa á til fulls handriti

Við skulum segja að þú viljir leyfa notendum að hlaða upp mynd með a einbeitni af aðeins GIF, JPEG eða PNG. Benda það getur verið svona.

if ($ _ FILES [ 'file_upload'] [ 'type "]! =" image / png ") {
echo "Því miður, við styðjum einungis niður Gif-Files";
útleiðinni;
}

Ef þú vilt að skip allar 3 tegundir, einfaldlega bæta við ástand í annars konar mynd.

Afritun er gert svona: eintaki (mynd 1, mynd 2).

Í okkar tilviki, þegar verkið er að hlaða niður frá tölvunni miðlara, getur þú gert það

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

Það er skráin verður afrita með nafninu 1.jpg. Þetta er ekki alveg rétt. Í þessu tilfelli er það bara dæmi. Skráin nafn er alltaf nauðsynlegt að tilgreina mismunandi, og tilgreina eftirnafn, eftir skrá.

Ákvarða eftirnafn getur verið mismunandi leiðir. Það veltur allt á framkvæmdaraðila erudition. Einn af the festa leiðir til (munur á tugum sekúndur) ákvarða eftirnafn - þetta er næsta númer.

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

$ Ext = $ path_info [ 'stækkun "];

Breytan $ á Ytra munum geyma viðkomandi eftirnafn. A skrá nafn er hægt að stilla á handahófi með MD5. Ef þú ætlar að sækja mikið af skrám, það er betra að skip þá á mismunandi möppur. Svo það verður þægilegra. Sérstaklega ef þú vilt að hreinsa.

að sækja kóðann verður sem hér segir.

/// með mynd

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

{

echo ( "

Unknown skrá.

baka ... ");

útleiðinni;

}

///. Segja þér fyrir hvaða verkefni á þjóninum er leyft að hlaða stórar skrár (vídeó), en það eru aðeins myndir og notendur þurfa að takmarka

ef (($ _FILES [ "photo1"] [ "stærð"]> 1024 * 1024 * 2)

{

?>

hámarks leyfileg stærð, 2 MB

baka ...

útleiðinni;

}

// búa til möppur

// búa til möppu af núverandi mánuð

if (! file_exists ( "IMG /". dagsetning ( "M")))

{

mkdir ( "IMG /" dagsetning ( "M").);

}

// búa til möppu á daginn í dag

if (! file_exists ( "IMG /". dagsetning ( "M"). "/". dagsetning ( "d")))

{

mkdir ( "IMG /" dagsetning ( "M") "/" dagsetning ( "d") ...);

}

/// skrá eftirnafn

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

$ Ext = $ path_info [ 'stækkun "];

/// mynda skráarheiti

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

ef (afrit ($ _ FILES [ 'photo1'] [ "tmp_name"], "IMG /". dagsetning ( "M"). "/". dagsetning ( "d"). "/". $ id. $ Ext) )

{

echo ( "File hlaðið");

}

/// frekari aðgerða (færsla í gagnagrunninum, og svo framvegis. N.)

}

margar skrár

Að hlaða margar skrár (PHP) kemur með fleiri sviðum í formi.

Þessi aðferð er ekki mjög gott, eins og það takmarkar fjölda skráa til að hlaða niður. Þar að auki er það talið ósiður í forritun. Reyna að gera allt dynamic.

Kjörinn valkostur - það er val um fjölda skrár í einu með því að ýta á einn hnapp.

Til að gera þetta, búa til form eins og þetta númer.

Athugið að margfeldi viðbót orðsins, og nafn gefið og fylki []. Í þessu tilfelli, $ _FILES array verður örlítið öðruvísi. Þú verður að fá fjölbreytta fylkisins.

Til að prófa geta aftur notað var_dump ($ _ skrár);

Allar skrár verða sett í fylkinu eins og þetta:

  1. $ _FILES [ "file1"] [ "nafn"] [0]
  2. $ _FILES [ "file1"] [ "nafn"] [1]
  3. Og svo framvegis.

Í sviga er skrifað skrá númer í fylkinu. Talið frá núlli. Við förum þá á sama hátt, bara að spyrja hringrás og því að hafa samband hér að ofan lýst kóða í lok vísitölu bæta [$ i].

$ I = 0;

á meðan ($ _FILES [ "file1"] [ "nafn"] [$ i] <> '')

{

/// límdu kóðann hér að ofan

}

Þannig verður þú að gerast í gegnum PHP skrá hlaða á þjóninum í hring án óþarfa endurtekningu á kóða, sem er yfirleitt raunin, ef þú notar útgáfu með truflanir fjölda af skrá (síðasta mynd).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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