KwamfutocinFayil iri

PHP: fayil upload zuwa uwar garken

Sauke fayiloli via PHP - mai matukar ban sha'awa da hali, to dole ne kuma a kusanta sosai a hankali. A yanar-gizo za ka iya samun misalai da yawa na aiwatar da fayil upload, amma ba dukan su ba suna mai kyau da kuma saduwa da aminci dokoki.

Irin wannan abubuwa bukatar kawo zuwa ƙarshe, ko idan yana daukan lokaci mai tsawo. Idan ka bar rata a cikin code, sa'an nan ka dukan uwar garke za a iya damuwa.

aminci

Tare da PHP fayil upload zuwa uwar garken yana da za'ayi quite sauƙi. A code ne sosai takaice da kuma sauki. Kawai kamar wata Lines. Duk da haka, wannan hanya ne m. Fiye da lokaci da kuma Lines na code tafi da aminci.

A hatsari ne cewa, idan ba ku aikata ba dubawa, wani attacker iya upload da rubutun a kan uwar garke. A wannan yanayin, zai yi cikakken damar. Ya iya yin duk abin da ya so:

  • share database.
  • share fayiloli shafukan.
  • gyara fayiloli shafukan.
  • ƙara your ad to your website.
  • download ƙwayoyin cuta.
  • tura duk masu amfani a kan su shafukan.
  • da kuma sauran abubuwa da ta zo hankali attacker.

Ya kamata ka ko da yaushe duba cewa ƙoƙarin sauke fayil ga mai amfani. Alal misali, idan ka loda hotunan kawai, shi wajibi ne don tabbatar da cewa da fayil shi ne wani image sosai. In ba haka ba, za ka sauke wani abu.

Daidai da yadda za a aiwatar da tabbaci, shi za a nuna, da kai tsaye jarrabawa rubutun upload fayiloli.

Samar da wani PHP form

fayil upload tsari ne mai sauqi qwarai. M da browse button da kuma upload mashiga.

Ya bayyana yadda za ka ƙirƙiri da siffofin so ba, saboda yana da sauki. Bugu da ari umarnin ɗauka cewa ka riga da asali Concepts na HTML (in ba haka ba ba za ka iya neman bayanai game da sauke a kan PHP).

Amma lura cewa data a cikin hanyar kana bukatar ka ƙara enctype sifa.

In ba haka ba, da bayanai a kan fayil mai horo ba za a daukar kwayar cutar.

Ta yaya ya kamata ya yi aiki?

A lokacin da ka danna a kan browse button ya kamata ka gani a akwatin inda ya tambaye su zabi wani fayil.

Bayan da cewa shi za a buƙaci ka sami hanya inda fayil is located.

Idan hanya ba ya bayyana, yi aikin sake.

Bayan danna kan download fayil mai horo iya ba da wani bayani.

Alal misali, za ka iya rubuta layi cewa ya furta cewa, cikin fayil shi ne "don haka da haka" sunan da aka samu nasarar uploaded ga "irin da irin wannan" babban fayil. Hakika, da sunan fayil za a ba ko da yaushe daban-daban.

Yawanci, wannan bayanai da ake amfani da su cire kuskure code. Kamar haka yana yiwuwa don tabbatar da cewa data yana daukar kwayar cutar, kuma ya rubuta da faruwa a cikin so directory. Wannan ne, ko da sunan fayil ba a nuna. Tun da wannan karin bayani da cewa mai amfani ba ya bukatar.

Shi ya sa hankali domin fitarwa da sunan kawai, idan mai amfani downloads mahara fayiloli. Irin wannan shi ne yanayin, la'akari da wani kadan kara. Bari mu ba samun ci gaba na kanmu.

gyara

A PHP fayil upload zuwa uwar garken na bukatar wasu saituna, wanda ya kamata a yi a cikin php.ini fayil. Wannan fayil ya ƙunshi mai yawa saituna. Su duka ba mu bukatar. Mu ne sha'awar uku Lines: file_uploads, upload_tmp_dir da upload_max_filesize.

Lura cewa wadannan saituna zai shafi duk na shafukan a kan uwar garke, ba kawai wani daya. Saboda haka, ka saita iyakar size dogara ne a kan gaskiyar cewa ba za ka yi load masu amfani. An ba da shawarar a kafa ma manyan.

Da zarar ka canza dabi'u a cikin wadannan sigogi, kana bukatar ka zata sake farawa da uwar garke. In ba haka ba da saituna ba zai dauki sakamako, kamar yadda suka karanta a lokacin da uwar garke load.

Za ka iya yin wannan a cikin na'ura wasan bidiyo ta haɗa via SSH ga uwar garke. Kawai shigar da umurnin sabis httpd sake kunnawa, sa'an nan da saituna zai yi sakamako.

Wani Hanyar - a sake kunnawa ta hanyar ISP-panel ko ta hanyar da lissafin kuɗi da panel naka.

array fayil

A PHP fayil upload da aka yi da tsararru $ _FILES. Yana ƙunshi dukkan bayanai game da fayiloli cewa muna saukewa.

Don ganin abin da bayanai da aka dauke a cikin tsararru, isa ya rubuta a cikin fayil mai horo wadannan.

Zabi wani fayil da kuma danna "Upload." A cikin horo page zai nuna maka da bayanai da aka adana a $ _FILES. The m aka rubuta, gabã ɗaya, tare da babban birnin kasar haruffa. PHP - a harshen-m.

Kamar yadda ka gani, a cikin wannan tsararru na da yawa filayen. Dukansu suna da muhimmanci a gare mu. A farko filin yana dauke da sunan fayil a cikin nau'i a cikin abin da shi da ake amfani a kan kwamfutarka.

A irin shafi kayyade fayil type. Tmp_name filin yayi dace da sunan wucin gadi fayil. Bayan karshen rubutun za a share.

The kuskure filin ƙunshi wani kuskure code. Wannan shi ne dan kadan kara. Girman - da size a bytes.

kurakurai

Da za'ayi ta hanyar da PHP fayil upload yana da yaushe tare da wani kuskure code. An sakon kuskuren shigar a cikin "kuskure". A screenshot kuskure ne sifili.

La'akari da darajar duk kurakurai:

Yana da aka ce a sama game da siga da cewa za a iya kayyade a cikin saba HTML.

Ga wani samfurin form to download na file, wanda ya nuna wani iyaka da adadin da uploaded fayil.

PHP: fayil upload rubutun

Kamar yadda duk da za'ayi a yi? A PHP fayil upload auku kwafin umurninSa. Idan kana sha'awar a cikin tambaya na yadda za a sauke fayil, amsar ne mai sauki copy-, wanda yana amfani da biyu sigogi - tushen fayil da manufa fayil.

Amma, kamar yadda ya bayyana a sama, shi ba zai iya zama mai iyaka don aminci dalilai. Alal misali, a duba fitar da abin da irin fayil mu ship, ba za ka iya amfani da filin da irin a cikin tsararru $ _FILES. Da farko, bari mu magance dubawa, sa'an nan kuma motsa a kan zuwa cikakken rubutun

Bari mu ce kana son ka ba da damar masu amfani don upload wani hoto tare da wani ƙuduri na kawai GIF, JPEG ko PNG. Nuna shi zai iya zama kamar wannan.

idan ($ _ fayiloli [ 'file_upload'] [ 'irin']! = "image / gif") {
amsa kuwa "Yi hakuri, mu Support kawai sauke GIF-Files".
mafita.
}

Idan kana so ka ship duk 3 iri, kawai ƙara ƙarin yanayin da sauran irin image.

Ana kwafa da aka yi kamar da wannan: kwafin (image 1, image 2).

A cikin akwati, a lokacin da aikin da aka sauke daga PC zuwa uwar garken, ba za ka iya yin haka

kwafin ($ _ fayiloli [ 'file_upload'] [ "tmp_name"], "1.jpg")

Wato, da fayil za a kofe da sunan 1.jpg. Wannan ba gaba ɗaya daidai. A wannan yanayin, shi ne kawai wani misali. The sunan fayil ne ko da yaushe wajibi ne don saka daban-daban, da kuma saka da tsawo, dangane da fayil ɗin.

Ƙayyade da tsawo iya zama daban-daban hanyoyi. A duk ya dogara da developer na erudition. Daya daga cikin gaggawa hanyoyin da za a (bambanci tenths na seconds) ƙayyade da tsawo - wannan shi ne na gaba code.

$ Path_info = pathinfo ($ _ fayiloli [ 'photo1'] [ "sunan"]).

$ EXT = $ path_info [ 'tsawo'];

The m $ da EXT za mu adana da ake so tsawo. A sunan fayil za a iya kafa a bazuwar amfani md5. Idan ka shirya don sauke yawa fayiloli, shi ne mafi alhẽri ship su zuwa daban-daban manyan fayiloli. Saboda haka zai kasance mafi m. A musamman, idan kana so ka tsarkake.

to download da code zai zama kamar haka.

/// Da photo

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

{

Karfin ( "

Unknown fayil.

Back ... ");

mafita.

}

///. Ka ce za ka ga wani aikin a kan uwar garke da aka yarda su load manyan fayiloli (video), amma akwai kawai hotuna, da kuma masu amfani da bukatar iyakance

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

{

?>

matsakaicin yarda size of 2 MB

Back ...

mafita.

}

// haifar da manyan fayiloli

// ƙirƙirar babban fayil na yanzu watan

idan (! file_exists ( "img /". kwanan ( "M")))

{

mkdir ( "img /" kwanan ( "M").).

}

// ƙirƙirar babban fayil na yanzu rana

idan (! file_exists ( "img /". kwanan ( "M"). "/". kwanan ( "d")))

{

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

}

/// fayil tsawo

$ Path_info = pathinfo ($ _ fayiloli [ 'photo1'] [ "sunan"]).

$ EXT = $ path_info [ 'tsawo'];

/// samar da filename

$ Id = md5 (kwanan wata ( "YMd")).

idan (kwafin ($ _ fayiloli [ 'photo1'] [ "tmp_name"], "img /". kwanan ( "M"). "/". kwanan ( "d"). "/". $ id. $ EXT) )

{

Karfin ( "fayil nasarar uploaded");

}

/// wani mataki kara (shigarwa a cikin database, da sauransu. N.)

}

mahara fayiloli

Loda mahara fayiloli (PHP) ya auku ta hanyar ƙarin filayen a cikin nau'i.

Wannan hanya ba kyau sosai, kamar yadda ya takaita yawan fayiloli zuwa download. Bugu da ƙari, an dauke bad fom in shirye-shirye. Ka yi kokarin aikata duk abin da tsauri.

Manufa zaɓi - shi ne wani zabi na babban yawan fayiloli a lokaci daya ta latsa guda button.

Don yin wannan, ƙirƙirar siffar kamar wannan code.

Lura cewa mahara Bugu da kari na kalmar, da kuma sunan da aka ba kamar yadda wani tsararru []. A wannan yanayin, $ _FILES tsararru zai zama dan kadan daban-daban. Za ka samu wani tsararru na tsararru.

Don gwada iya sake amfani da var_dump ($ _ fayiloli).

Duk da fayiloli za a sanya a cikin tsararru kamar wannan:

  1. $ _FILES [ "file1"] [ "sunan"] [0]
  2. $ _FILES [ "file1"] [ "sunan"] [1]
  3. Da sauransu.

A parentheses aka rubuta cikin fayil lamba a cikin tsararru. Kirgawa daga sifili. Mun bi da su a cikin wannan hanya, kawai tambaye sake zagayowar da kuma ta tuntužar sama-aka bayyana code a karshen index kara [$ i].

$ I = 0.

yayin ($ _FILES [ "file1"] [ "sunan"] [$ i] <> '')

{

/// manna sama code

}

Saboda haka, za ka yi faru ta hanyar wani PHP fayil upload da uwar garke a daya sake zagayowar ba tare da dole ba maimaitawa na code, kamar yadda yake yawanci haka al'amarin idan ka yi amfani da version tare da wani a tsaye yawan fayiloli (karshe photo).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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