CyfrifiaduronFathau o ffeiliau

Llwytho ffeil at 'r gweinyddwr: PHP

Lawrlwytho ffeiliau drwy PHP - achos diddorol iawn, y mae'n rhaid cysylltu gael yn ofalus iawn. Ar y rhyngrwyd gallwch ddod o hyd nifer o enghreifftiau o o llwytho i fyny ffeil ar waith, ond nid yw pob un ohonynt yn dda ac yn cwrdd â rheoliadau diogelwch.

Mae angen i bethau o'r fath i ddod i gasgliad, hyd yn oed os bydd yn cymryd amser hir. Os byddwch yn gadael bwlch yn y cod, yna gall eich gweinydd cyfan yn cael ei beryglu.

diogelwch

Gyda PHP ffeil llwytho i'r gweinydd yn cael ei wneud yn eithaf rhwydd. Mae'r cod yn fyr iawn ac yn syml. Dim ond un neu ddau o linellau. Fodd bynnag, mae'r dull hwn yn beryglus. Mae llawer mwy o amser a llinellau o god i ffwrdd i ddiogelwch.

Y perygl yw, os nad ydych yn gwneud archwiliadau, gallai unrhyw ymosodwr lwytho eu sgriptiau ar eich gweinydd. Yn yr achos hwn, bydd yn cael mynediad llawn. Gall wneud beth bynnag y mae am:

  • dileu y gronfa ddata;
  • ddileu safleoedd ffeiliau;
  • addasu safleoedd ffeiliau;
  • ychwanegu eich hysbyseb at eich gwefan;
  • lawrlwytho firysau;
  • ailgyfeirio pob defnyddiwr ar eu safleoedd;
  • a llawer o bethau eraill sy'n dod i'r meddwl ymosodwr.

Dylech bob amser wirio bod ymdrechion i lawrlwytho ffeil ar gyfer y defnyddiwr. Er enghraifft, os ydych yn llwytho delweddau yn unig, mae angen i wirio bod y ffeil yn ddelwedd gywir. Fel arall, byddwch yn lawrlwytho unrhyw beth.

Yn union sut i weithredu dilysu, bydd yn cael ei ddangos, gyda'r sgript arholiad yn uniongyrchol i lwytho ffeiliau.

Creu ffurflen PHP

ffurflen llwytho ffeil yn syml iawn. Ar goll ar y botwm pori a llwytho i fyny botymau.

Yn disgrifio sut i greu Nid yw ffurflenni fydd, am ei fod yn hawdd. cyfarwyddiadau pellach yn tybio bod rhaid i chi eisoes cysyniadau sylfaenol HTML (fel arall fyddech chi ddim yn chwilio am wybodaeth am lawrlwytho ar PHP).

Ond nodi bod y data yn y ffurflen y mae angen i chi ychwanegu y priodoledd enctype.

Fel arall, ni fydd y data ar triniwr ffeil yn cael ei drosglwyddo.

Sut y dylai weithio?

Pan fyddwch yn clicio ar y botwm pori dylech weld blwch lle gofynnwyd i ddewis ffeil.

Ar ôl hynny bydd yn ofynnol iddo gael llwybr lle mae'r ffeil yn cael ei leoli.

Os na fydd y llwybr yn yn ymddangos, yn perfformio y camau gweithredu eto.

Ar ôl clicio ar y trafodwr lawrlwytho ffeil yn gallu rhoi unrhyw wybodaeth.

Er enghraifft, gallwch ysgrifennu y llinell sy'n datgan bod y ffeil yn "felly ac felly" yr enw wedi cael ei lanlwytho llwyddiannus at y "o'r fath ac o'r fath" folder. Wrth gwrs, bydd enw'r ffeil yn cael ei roi bob amser yn wahanol.

Yn nodweddiadol, mae'r wybodaeth hon yn cael ei defnyddio i cod debug. Felly mae'n bosibl i wirio bod y data yn cael ei drosglwyddo ac ysgrifennu yn digwydd yn y cyfeiriadur a ddymunir. Hynny yw, nid hyd yn oed y enw ffeil yn cael ei nodi. Ers wybodaeth ychwanegol hwn nad oes angen y defnyddiwr.

Mae'n gwneud synnwyr i allbwn yr enw dim ond os yw'r defnyddiwr yn downloads ffeiliau lluosog. O'r fath yn wir, yn ystyried ychydig ymhellach. Gadewch i ni beidio cael y blaen i ni ein hunain.

addasiad

Yn PHP ffeil llwytho i fyny at 'r gweinyddwr yn gofyn lleoliadau penodol, a ddylai gael ei wneud yn y ffeil php.ini. Mae'r ffeil hon yn cynnwys llawer o leoliadau. Maent i gyd nid oes angen. Mae gennym ddiddordeb mewn tair llinell: file_uploads, upload_tmp_dir a upload_max_filesize.

Sylwer y bydd y gosodiadau hyn yn effeithio ar eich holl safleoedd ar y gweinydd, nid dim ond unrhyw un. Felly, i osod y maint mwyaf yn seiliedig ar y ffaith y bydd yn rhaid i chi lwytho i ddefnyddwyr. Nid ydym yn argymell i osod yn rhy fawr.

Ar ôl i chi newid y gwerthoedd mewn paramedrau hyn, bydd angen i chi ailgychwyn y gweinydd. Fel arall, ni fydd y gosodiadau i rym, wrth iddynt ddarllen ar adeg y llwyth gweinydd.

Gallwch wneud hyn yn y consol drwy gysylltu trwy SSH at 'r gweinyddwr. Yn syml, rhowch y restart httpd gwasanaeth gorchymyn, ac yna bydd y gosodiadau i rym.

Dull arall - a restart trwy ISP-banel neu drwy ddarparwr banel bilio.

file Array

Yn PHP llwytho ffeil yn cael ei wneud gan yr amrywiaeth $ _FILES. Mae'n cynnwys yr holl wybodaeth am y ffeiliau a byddwn yn llwytho i lawr.

I weld pa wybodaeth wedi'i gynnwys yn y casgliad, yn ddigon i ysgrifennu yn y trafodwr ffeil canlynol.

Dewiswch unrhyw ffeil a chliciwch "Llwytho". Ar y dudalen triniwr yn dangos y wybodaeth sy'n cael ei storio yn $ _FILES. Y newidyn ei ysgrifennu yn gyfan gwbl gyda llythrennau bras. PHP - iaith-sensitif.

Fel y gwelwch, yn y casgliad hwn mae llawer o feysydd. Mae pob un ohonynt yn bwysig i ni. Mae'r cae cyntaf yn cynnwys enw'r ffeil yn y ffurf y mae'n cael ei ddefnyddio ar eich cyfrifiadur.

Mae'r golofn fath a bennir math o ffeil. Tmp_name cae yn cyfateb i enw'r ffeil dros dro. Ar ôl diwedd y sgript yn cael ei ddileu.

Mae'r cae gwall yn cynnwys cod gwall. Roedd hyn yn ychydig yn bellach. Maint - mae maint yn bytes.

gwallau

A gynhaliwyd drwy'r llwytho ffeil PHP yn cyd-fynd bob amser gan cod gwall. Neges gwall gofnodi yn y "gwall". Y gwall screenshot yn sero.

Ystyried gwerth yr holl wallau:

Dywedwyd uchod am y paramedr y gellir eu nodi yn y HTML arferol.

Dyma ffurflen enghreifftiol i lawrlwytho'r ffeil, sy'n dangos terfyn o swm y ffeil llwytho i fyny.

sgript llwytho ffeil: PHP

Gan fod pob gynhaliwyd yn ymarferol? Yn PHP llwytho ffeil digwydd copi gorchymyn. Os oes gennych ddiddordeb yn y cwestiwn o sut i lawrlwytho ffeil, yr ateb yw copi- syml, sy'n defnyddio ddau baramedr - y ffeil ffynhonnell a ffeil cyrchfan.

Ond, fel y nodwyd uchod, ni all fod yn gyfyngedig am resymau diogelwch. Er enghraifft, atalfa i maes pa fath o ffeil rydym llong, gallwch ddefnyddio'r math o faes yn yr amrywiaeth $ _FILES. Yn gyntaf, gadewch i ni ymdrin ag archwilio, ac yna symud ymlaen i'r sgript llawn

Dewch i ddweud eich bod am i alluogi defnyddwyr i lwytho llun gyda phenderfyniad o ddim ond GIF, JPEG neu PNG. Nodwch y gall fod fel hyn.

os ($ _ FFEILIAU [ 'file_upload'] [ 'math']! = "image / gif") {
adleisio "Mae'n ddrwg gennym, rydym yn cefnogi dim ond llwytho i lawr Gif-Ffeiliau";
allanfa;
}

Os ydych am i long pob 3 math, ychwanegwch amod ychwanegol i fath arall o ddelwedd.

Copïo yn cael ei wneud fel hyn: copi (delwedd 1, delwedd 2).

Yn ein hachos ni, pan fydd y gwaith yn cael ei llwytho i lawr oddi wrth y PC at 'r gweinyddwr, gallwch wneud hynny

copi ($ _ FFEILIAU [ 'file_upload'] [ "tmp_name"], "1.jpg")

Hynny yw, bydd y ffeil yn cael ei gopïo gydag enw 1.jpg. Nid yw hyn yn hollol gywir. Yn yr achos hwn, dim ond un enghraifft. Mae'r enw ffeil yn angenrheidiol bob amser i bennu gwahanol, ac yn nodi'r estyniad, yn dibynnu ar y ffeil.

Pennu Gall yr estyniad fod yn wahanol ffyrdd. Mae'r cyfan yn dibynnu ar y datblygwr o erudition. Un o'r ffyrdd cyflymaf i (gwahaniaeth o degfed o eiliadau) penderfynu ar y estyniad - mae hyn yn y cod nesaf.

$ Path_info = pathinfo ($ _ FFEILIAU [ 'Llun1'] [ "enw"]);

$ Est = $ path_info [ 'estyniad'];

Y newidyn $ y est byddwn yn storio'r estyniad a ddymunir. Gall enw ffeil yn cael ei osod ar hap gan ddefnyddio md5. Os ydych yn bwriadu lawrlwytho llawer o ffeiliau, mae'n well eu llong i ffolderi gwahanol. Felly, bydd yn fwy cyfleus. Yn benodol, os ydych am cartha.

i lwytho i lawr y cod fel a ganlyn.

/// Gyda llun

os ($ _FILES [ 'Llun1'] [ 'tmp_name'] == null)

{

adlais ( "

ffeil Unknown.

Back ... ");

allanfa;

}

///. Dywedwch eich ar gyfer unrhyw brosiect ar y gweinydd yn cael ei ganiatáu i lwytho ffeiliau mawr (fideo), ond dim ond lluniau, ac mae angen i ddefnyddwyr i gyfyngu

os (($ _FILES [ "Llun1"] [ "maint"]> 1024 * 1024 * 2)

{

?>

yr uchafswm a ganiateir maint y 2 MB

Back ...

allanfa;

}

// creu ffolderi

// greu ffolder o'r mis cyfredol

os (! file_exists (dyddiad "img /". ( "M")))

{

mkdir ( "/ img" dyddiad ( "M").);

}

// greu ffolder y diwrnod cyfredol

os (! file_exists (dyddiad ( "M"). "/". ddyddiad ( "d")) "img /".)

{

mkdir ( "/ img" dyddiad ( "M") dyddiad "/" ( "d") ...);

}

/// estyniad ffeil

$ Path_info = pathinfo ($ _ FFEILIAU [ 'Llun1'] [ "enw"]);

$ Est = $ path_info [ 'estyniad'];

/// cynhyrchu enw ffeil

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

os (copi ($ _ FFEILIAU [ 'Llun1'] [ "tmp_name"], "img /". ddyddiad ( "M"). "/". ddyddiad ( "d"). "/". $ id. $ est) )

{

adlais ( "Ffeil llwytho'n llwyddiannnus");

}

/// unrhyw gamau pellach (cofnod yn y gronfa ddata, ac yn y blaen. N.)

}

ffeiliau lluosog

Llwytho i fyny ffeiliau lluosog (PHP) yn digwydd trwy gyfrwng meysydd ychwanegol yn y ffurflen.

Nid yw'r dull yn dda iawn, gan ei fod yn cyfyngu ar nifer o ffeiliau i'w llwytho i lawr. Ar ben hynny, mae'n cael ei ystyried yn ffurf drwg mewn rhaglenni. Ceisiwch wneud popeth deinamig.

Y dewis delfrydol - mae'n ddewis o nifer fawr o ffeiliau ar unwaith drwy wasgu botwm sengl.

I wneud hyn, creu siâp tebyg cod hwn.

Noder bod y ychwanegu lluosog y gair, ac mae'r enw yn cael ei roi fel array []. Yn yr achos hwn, bydd $ _FILES arae fod ychydig yn wahanol. Byddwch yn cael amrywiaeth o y rhesi.

I brofi eto yn gallu defnyddio'r var_dump ($ _ FFEILIAU);

Bydd eich holl ffeiliau yn cael eu rhoi yn y casgliad fel hyn:

  1. $ _FILES [ "file1"] [ "enw"] [0]
  2. $ _FILES [ "file1"] [ "enw"] [1]
  3. Ac yn y blaen.

Mewn cromfachau ei ysgrifennu rhif y ffeil yn y rhesi. Cyfrif o sero. Rydym yn eu trin yn yr un modd, dim ond gofyn y cylch a thrwy gysylltu â'r cod uchod-a ddisgrifir ar ddiwedd y ychwanegu mynegai [$ i].

$ I = 0;

tra ($ _FILES [ "file1"] [ "enw"] [$ i] <> '')

{

/// gludwch y cod uchod

}

Felly, bydd yn rhaid i chi ei weld yn digwydd trwy llwytho ffeil PHP at 'r gweinyddwr mewn un cylch, heb ailadrodd diangen o'r cod, fel sy'n digwydd fel arfer os ydych yn defnyddio'r fersiwn gyda nifer sefydlog o ffeiliau (llun diwethaf).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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