OrdenagailuakFitxategi mota

PHP: Artxibo zerbitzariari kargatzeko

PHP bidez fitxategiak deskargatzea - kasu oso interesgarria da, zein hurbildu beharko kontu handiz. Interneten fitxategiak igotzeko ezartzeko adibide ugari aurkitu ahal izango duzu, baina ez denak dira onak eta segurtasun arauak betetzen.

Horrelako gauzak ondorio bat ekarri, denbora luzea igarotzen bada ere behar. uztekotan hutsune bat bada kodean, orduan zure zerbitzaria osoa arriskuan egon daiteke.

segurtasuna

PHP fitxategia igo zerbitzariari egiten da nahiko erraz. Kodea oso labur eta erraza da. Just lerro pare bat. Hala ere, metodo hau arriskutsua da. Denbora eta kodea segurtasuna kanpoan lerroak askoz gehiago.

Arriskua da, hori ez baduzu egin ikuskapen, edozein erasotzaile haien gidoiak igo liteke zure zerbitzarian. Kasu honetan, sarbide osoa izango du. egin ahal izango zuen edozein dela nahi duena:

  • datu-basea ezabatu;
  • fitxategiak guneak ezabatu;
  • aldatzeko fitxategiak guneak;
  • iragarkia gehitu zure web-da;
  • deskargatzeko birusak;
  • redirect erabiltzaile guztiak beren guneak on;
  • eta etortzen diren beste hainbat gauza erasotzaile burura.

Beti egiaztatu beharko duzu fitxategi bat deskargatu erabiltzailearentzat saiatuko dela. Adibidez, irudiak igo duzun bakarra bada ere, beharrezkoa da fitxategia irudi bat da zehaztasunez egiaztatzeko. Bestela, ezer deskargatu ahal izango duzu.

Zehazki egiaztapen ezartzeko, erakutsiko dira bertan, zuzeneko azterketa gidoia fitxategiak kargatzeko batera.

PHP formulario bat sortzea

fitxategiak igotzeko forma oso erraza da. arakatu botoia eta igoera botoiak falta da.

Deskribatzen nola sortu inprimakiak ez, erraza delako. argibide gehiago suposatuko dagoeneko duzula HTML oinarrizko kontzeptuak (bestela ez litzatekeela informazio bila PHP on deskargatzea buruz).

Baina kontuan formularioa datuak enctype atributua gehitu behar duzu.

Bestela, fitxategi kudeatzailea buruzko datuak ez dira transmititzen.

Nola lan egin behar da?

Noiz egin klik 'arakatu botoia kutxa bat non eskatu fitxategia aukeratzeko ikusi behar duzu.

Ondoren da beharrezkoa izango da bide bat fitxategia non dago jasotzeko.

bidea agertzen ez bada, ekintza hauek egin berriro.

the fitxa deskargatu kudeatzailea sakatu ondoren edozein informazio eman dezake.

Adibidez, estatu fitxategia dela ", beraz, eta, beraz," izenarekin bezala eta "halako" karpeta igotako line idatzi ahal izango duzu. Jakina, fitxategi izen beti ezberdinak emango zaie.

Normalean, informazio hori debug kodea erabiltzen da. Beraz, posible da datu hori transmititzen da, eta idazten nahi duzun direktorioan gertatzen egiaztatzeko. Hau da, nahiz eta fitxategi-izena ez da adierazten. Informazio gehigarria honetatik aurrera, erabiltzaileak ez du zertan.

Zentzu izenean erabiltzaileak deskargatzen bada bakarrik hainbat fitxategi Egiten irteera. Horrela gertatzen da, kontuan apur bat gehiago. Dezagun ez geure burua aurretik.

doikuntza

PHP fitxategia zerbitzarira kargatu duzun jakin ezarpenak, bertan php.ini fitxategiko egin behar eskatzen du. Fitxategi honek ezarpenak asko dauka. Ziren denak, ez dugu behar. file_uploads, upload_tmp_dir eta upload_max_filesize: hiru lerro interesa gara.

Kontutan izan ezarpen hauek zure guneak guztientzat izango du eragina zerbitzarian, eta ez bakarrik edozein bat. Beraz, gehienezko tamaina oinarritutako Izan ere, erabiltzaile kargatzeko aukera izango duzu ezartzeko. Ez da gomendagarria handiegia ezartzeko.

Behin zuk aldatu balioak parametro horietan, zerbitzaria berrabiarazi behar duzu. Bestela ezarpenak ez dute eraginik izango, irakurri dute zerbitzaria karga unean gisa.

Hau egin ahal izango duzu kontsolan SSH bidez konektatzen zerbitzariari arabera. Besterik gabe, idatzi komando zerbitzu httpd restart, eta gero ezarpenak gauzatuko.

Beste metodo bat - berrabiarazi ISP-panel bidez edo fakturazio panel hornitzailearen bidez.

array fitxategia

PHP fitxategiak igotzeko array $ _FILES egiten da. deskargatu dugun fitxategiak buruzko informazio guztia dauka.

zein informazio da array, nahikoa hurrengo fitxategi kudeatzailea idazteko jasotako ikusteko.

Aukeratu edozein fitxategi eta sakatu "Igo". kudeatzailea orrian hori $ _FILES gordetako informazioa erakutsiko du. Aldagaia idatzita osorik maiuskulaz. PHP - hizkuntza-sentikorra.

Ikusten duzun bezala, array honetako eremu asko ditu. Guztiek garrantzitsua da guretzat. Lehenengo eremua fitxategi izena inprimaki zein ordenagailuan erabiltzen da ere badu.

mota zutabeak zehaztutako fitxategi mota. eremu Tmp_name aldi baterako fitxategia izenean dagokio. gidoia amaitu ondoren ezabatuko dira.

error eremua error kode bat dauka. Hau pixka bat gehiago izan zen. Tamaina - byte tamaina.

Akatsak

Egindako PHP fitxategiak igotzeko bidez egiten da beti error kodea batek lagunduta. errore-mezu bat "error" sartu. screenshot error zero da.

Demagun, akats guztien balioa:

It parametro hori ohiko HTML zehaztu ahal buruz arestian esan zuen.

Hemen lagin formulario bat fitxategia, zein igotako fitxategia zenbatekoa muga bat adierazten deskargatzeko da.

PHP: fitxategiak igotzeko gidoia

guztiak egiten bezala praktikan? PHP fitxategiak igotzeko kopia komandoa gertatzen da. Iturburu fitxategia eta helmuga fitxategia - zara fitxategi batean nola deskargatu auzia interesa baduzu, erantzuna copy- simple, bi parametro erabiltzen den.

Baina, esan bezala, ezin da segurtasun arrazoiak mugatua izango. Adibidez, begiratu zer nolako fitxategia ontziratu dugu, eremu mota erabili dezakezu array $ _FILES ere. Lehen, dezagun aurre ikuskatzeko, eta, ondoren, gidoia osora

Demagun erabiltzaileak soilik GIF, JPEG edo PNG bereizmena argazki bat igo ahal izateko nahi duzun. Adierazi da honen antzeko izan daiteke.

bada ($ _ FILES [ 'file_upload'] [ 'mota'] = "image / gif") {
oihartzuna "Barkatu, baina onartzen bakarrik Gif-fitxategiak deskargatzea";
irteera;
}

3 mota guztietako ontziratu nahi baduzu, besterik gabe, baldintza gehigarri bat gehitu beste irudi mota da.

kopia (irudi 1, 2. irudia): kopiatzea bezala hau egiten da.

Gure kasuan, betiere lana da zerbitzariari PC batetik deskargatu, bana dezakezu

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

Hau da, fitxategi izen 1.jpg batera kopiatuko dira. Hau ez da erabat zuzena. Kasu honetan, adibide bat besterik ez da. fitxategi izen da beti beharrezkoa ezberdinak zehazteko, eta zehaztu luzapena, fitxategia arabera.

Zehaztu luzapena modu desberdinak izan daitezke. Guztiak araberakoa erudizio sustatzailearen orrian. azkarrena (segundo hamarren aldea) luzapena zehazteko modu bat - hau hurrengo kode bat da.

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

$ Ext = $ path_info [ 'luzapena'];

Aldakorra $ luz nahi den luzapena gordeko dugu. fitxategi izen A ausazko md5 erabiliz ezar daiteke. fitxategi asko jaitsi nahi izanez gero, hobe da horiek ontziratu karpetak desberdinetan. Beraz erosoagoa izango da. Hain zuzen ere, zigortzea nahi baduzu.

Kodea honako hauek izango dira deskargatzeko.

/// argazkiak

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

{

oihartzuna ( "

fitxategia ezezaguna.

Back ... ");

irteera;

}

///. Esan duzu zerbitzarian edozein proiekturako fitxategi handiak (bideoa) kargatu onartzen da, baina badira argazkiak soilik, eta erabiltzaileei behar den mugatzeko

badu (($ _FILES [ "photo1"] [ "tamaina"]> 1024 * 1024 * 2)

{

?>

gehienezko tamaina 2 MB

Back ...

irteera;

}

// karpetak sortu

// hilabeteko karpeta bat sortu

(! File_exists ( "img /". Data ( "M"))) bada

{

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

}

// egungo eguneko karpeta bat sortu

badu (! file_exists ( "img /". data ( "M"). "/". data ( "d")))

{

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

}

/// fitxategi-luzapena

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

$ Ext = $ path_info [ 'luzapena'];

/// filename sortzen

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

badu (kopia ($ _ FILES [ 'photo1'] [ "tmp_name"], "img /". data ( "M"). "/". data ( "d"). "/". $ id. $ luz) )

{

oihartzuna ( "fitxategia behar bezala igo");

}

/// ekintza gehiago edozein (datu-basean sarrera, eta abar. N.)

}

Hainbat fitxategi

anitz fitxategiak (PHP) kargatzea formularioa eremu gehigarriak bitartez gertatzen da.

Metodo hau ez da oso ona, fitxategiak deskargatzeko kopurua mugatzen baititu. Gainera, jotzen da programazio forma txarra. Saiatu dena dinamikoa egin.

Aukera ezin hobea du - aldi berean fitxategiak kopuru handia aukera bat botoi bakar bat sakatuz da.

Horretarako, kode hau bezalako forma bat sortzeko.

Kontuan hitzaren gain anitz hori, eta izena array [] gisa ematen da. Kasu honetan, $ _FILES array zertxobait desberdina izango da. array sorta bat jasoko duzu.

probatzeko berriro erabili ahal var_dump da ($ _ FILES);

Zure fitxategi guztiak egon honelako array jarriko dira:

  1. $ _FILES [ "file1"] [ "izena"] [0]
  2. $ _FILES [ "file1"] [ "izena"] [1]
  3. Eta abar.

parentesi idatzita dagoen fitxategia array zenbakia. zero hasita. horiek tratatzeko dugu modu berean, galde zikloa eta goian azaldutako kodea harremanetan jartzea indizeak gehituz [$ i] bukaeran arabera.

$ I = 0;

bitartean ($ _FILES [ "file1"] [ "izena"] [$ i] <> '')

{

/// itsatsi gainetik kodea

}

Horrela, PHP fitxategia ziklo bateko zerbitzariari igotako kodearen errepikapena alferrikako gabe bitartez gertatuko izango dute, ohi bezala, bertsio erabiltzen baduzu fitxategi kopurua estatikoan (azken argazkia) batera.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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