КомпютерНавъи файл

Боргузорӣ файл ба сервер: PHP

Зеркашӣ кардани файлҳои тавассути PHP - як ҳолати хеле ҷолиб, ки ба он бояд хеле бодиққат муносибат карда шавад. Дар Интернет шумо метавонед намунаҳои зиёде аз иҷрои боргузорӣ файл ёфт, вале ҳамаи онҳо хуб нест ва қонеъ қоидаҳои бехатарии.

Чунин чизҳо эҳтиёҷ ба оварад то охир, ҳатто агар онро мегирад муддати дароз. Агар шумо як холигии тарк дар кодекси, он гоҳ тамоми сервери Шумо мумкин аст осеб.

бехатарӣ

Бо PHP боргузорӣ ба сервер аст, ки хеле ба осонӣ анҷом дода мешавад. Рамзи хеле кӯтоҳ ва осон аст. Танҳо як ҷуфти хатҳои. Аммо, ин усул хатарнок аст. вақт ва хатҳои Кодекси, то ки бехатарии бисёр бештар.

Хатари он аст, ки, агар шумо санҷиш накунед, ягон ҳамлаи метавонад скриптҳо худро дар сервери Шумо боргузорӣ. Дар ин ҳолат, аз он мегардад, пурра дастрас бошад. Ӯ метавонад корро ҳар чӣ мехоҳад:

  • нест кардани базаи;
  • тоза файлҳо сомонаҳо;
  • тағйир файлҳо сомонаҳо;
  • илова рекламавии худро ба сомонаи худ;
  • зеркашӣ вирусҳо;
  • воридаи ба ҳамаи корбарон дар сомонаҳои онҳо;
  • Ва бисьёр расмҳои дигар, ки омад ба ёд ҳамлаи.

Шумо бояд ҳамеша кӯшиш кунед, ки ба дарёфти файл барои корванд. Масалан, агар шумо тасвирҳо танҳо боргузорӣ, зарур тафтиши ки файл тасвир дуруст аст. Дар акси ҳол, ба шумо хоҳад чизе зеркашӣ кунед.

Маҳз, ки чӣ тавр амалӣ санҷиш, онро бо алифбои санҷиши бевоситаи Барои фиристодани файлҳо нишон дода мешавад.

Таъсис додани шакли PHP

форми боргузорӣ файл хеле осон аст. Нопайдо тугмаи Азназаргузарони ва боргузорӣ тугмаҳои.

Тасвир чӣ гуна эҷод шаклҳои он намехоҳед, чунки он осон. супоришҳои минбаъда дар њолате, ки шумо аллакай мафҳумҳои асосии HTML (дар акси ҳол шумо наметавонад барои маълумот дар ҷустуҷӯи дар бораи зеркашии оид ба PHP).

Лекин қайд кард, ки маълумоти дар шакли ба шумо лозим аст, ки илова аз они Худованд enctype аст.

Дар акси ҳол, маълумот оид ба handler файл на гузаранда мешавад.

Чӣ тавр бояд кор?

Вақте, ки шумо ба тугмаи Азназаргузарони зер шумо бояд як қуттии он ҷо пурсид, ки ба интихоб кардани файл дид.

Баъд аз ин, дар он талаб карда мешавад барои гирифтани роҳи куҷо файл ҷойгир аст.

Агар роҳи ба назар намерасад, боз иҷрои амал.

Баъд аз зеркунии оид ба handler зеркашӣ парванда метавонад ҳар гуна маълумот дод.

Масалан, шумо метавонед сатри, ки гуфта мешавад, ки парванда аст », то ва« ба исми шудааст бомуваффақият ба «чунин ва чунин« папкаи боргузорӣ нависед. Албатта, номи файл ҳамеша гуногун дода хоҳад шуд.

Одатан, ин иттилоот ба рамзи сознамоии истифода бурда мешавад. Ҳамин тавр мумкин аст, ки ба тафтиш, ки маълумоти гузаранда аст ва менависад, дар феҳристи дилхоҳро меоянд. Ин аст, ки ҳатто номи файл нишон дода нашуда бошад. Аз ин иттилоот иловагӣ, ки ба истифодабаранда эҳтиёҷ надорад.

Ин ба маънои ба баромади номи танҳо агар истифодабаранда Боргириҳои файлҳои бисёрмаротибаро. Ин ҳолат аст, дида мебароем каме. Биё пеш аз худ даст нест.

танзим

Дар PHP боргузорӣ файл ба сервер талаб танзимоти муайян, ки бояд дар файли php.ini анҷом дода мешавад. Ин парванда бисёр танзимоти. Онҳо ҳамаи мо лозим нест. file_uploads, upload_tmp_dir ва upload_max_filesize: Мо манфиатдор дар се хати мебошанд.

Илтимос дар хотир гиред, ки ин танзимати тамоми сомонаҳои худро дар сервер таъсир, ки на танҳо ҳеҷ кас. Аз ин рӯ, барои таъин кардани андозаи ниҳоии дар асоси он, ки шумо бояд ба бор истифодабарандагони. Ин аст, тавсия дода намешавад ба танзим аз ҳад калон.

Пас аз он, арзишҳои ки шумо тағйир дар ин параметрҳо, ба шумо лозим аст ба кор дароред сервер. Дар акси ҳол танзимотҳо таъсири гирифта намешавад, ки онҳо дар вақти бори сервер хонед.

Шумо метавонед ин дар консол пайваст тавассути SSH ба сервер кор. Танҳо хидмати фармони нав httpd дохил шавед, ва он гоҳ, танзимотҳо таъсири мегирад.

Боз як усули - як нав тавассути ISP-панели идоракунӣ ё ягон воситаи сониявӣ провайдери панел.

файли Array

Дар PHP боргузорӣ файл аз тарафи массиви $ _FILES анҷом дода мешавад. Он дорои тамоми маълумот дар бораи файлҳои, ки мо зеркашӣ кунед.

Барои дидани чӣ маълумот аст, ки дар саф, кофӣ барои навиштан дар файли зерин handler дармегиронад.

ҳар як файли интихоб кунед ва ба тугмаи "Замима». Дар саҳифаи handler хоҳад маълумот аст, ки дар $ _FILES захира нишон медиҳад. Дар тағйирёбанда пурра бо ҳарфҳои сармояи навишта шудааст. PHP - як-ҳассос забон.

Тавре ки шумо мебинед, дар ин саф дорад, бисёр майдонҳои. Ҳамаи онҳо барои мо муҳим аст. Дар соҳаи якум дорои номи файл дар шакли дар он аст, дар компютери шумо истифода мешавад.

Сутуни навъи муайян навъи файл. Tmp_name соҳаи мувофиқ ба номи файли муваққатӣ. Баъд аз ба охир расидани скрипт ҳузф хоҳанд шуд.

Дар соҳаи хато дорои рамзи хато. Ин каме шуд. Ҳаҷм - ба андозаи дар байт.

Хатогии

ба воситаи боргузорӣ, файли PHP гузаронида аст, ҳамеша аз ҷониби рамзи хато ҳамроҳӣ мекунанд. Дар Паёми хатогӣ дохил дар «гумроҳии». Ба хатогӣ Намудори сифр аст.

арзиши ҳамаи хатоҳои дида мебароем:

Ин дар боло дар бораи параметри, ки мумкин аст дар HTML муқаррарии муайян гуфта шудааст.

Дар ин ҷо як шакли намуна ба дарёфти файл, ки нишон медиҳад, меъёри андозаи файли боргузорӣ аст.

PHP: файли скрипт боргузорӣ

Тавре ки ҳамаи аз дар амал сурат мегирад? Дар PHP боргузорӣ файл фармони нусхаи рух медиҳад. файли сарчашмавиро ва файли таъиноти - Агар шумо манфиатдор дар масъалаи чӣ гуна ба дарёфти файл ҳастанд, ҷавоб copy- оддӣ, ки истифода мебарад, ду параметрҳо аст.

Аммо, чунон ки дар боло зикр карда, он метавонад, на бо сабабҳои бехатарии маҳдуд. Барои мисол, санҷед аз чӣ гуна файл, мо киштӣ, шумо метавонед намуди соҳаи дар массиви $ _FILES истифода баред. Дар аввал, биёед бо санҷиши сару кор мекунанд, ва он гоҳ ҳаракат ба алифбои пурра

Биё мегӯянд, ки шумо мехоҳед, ки ба иҷозат додан ба корвандон ба боргузории як акс бо як қарори танҳо GIF, JPEG, ё PNG. Нишон он метавонад ин бошад.

Агар ($ _ файлҳои [ 'file_upload'] [ 'Навъи']! = "симои / GIF») {
зерини «Бубахшед, мо дастгирӣ танҳо аз зеркашии GIF-Files";
баромадан;
}

Агар шумо хоҳед, ба киштӣ 3 намуди, танҳо як ҳолати иловагӣ ба дигар намуди тасвир илова кунед.

нусхаи (тасвири 1, симои 2): Нусхабардории аст, мисли ин анҷом дода мешавад.

Дар мисоли мо, вақте ки кор аст, аз зеркашии аз компютер ба сервер, шумо метавонед кор

нусхаи ($ _ файлҳои [ 'file_upload'] [ «tmp_name"] «1.jpg")

Ин аст, ки парванда хоҳад, бо номи 1.jpg ба нусхабардорӣ кардаед. Ин аст, комилан дуруст нест. Дар ин ҳолат, аз он танҳо як мисол аст. Номи файл аст, ҳамеша зарур муайян гуногун ва муайян кардани дароз, вобаста ба парванда.

Муайян тамдиди метавонад роҳҳои гуногун. Ҳамаи он дар бораи таҳиякунанда аз эљодкорї, вобаста аст. Яке аз роҳҳои босуръат (а гуногунии tenths сония) муайян тамдиди - ин рамзи оянда аст.

$ Path_info = pathinfo ($ _ файлҳои [ 'photo1'] [ «номаш» -ро]);

$ EXT = $ path_info [ 'тамдиди'];

Дар тағйирёбанда $ дар EXT мо ба тамдиди дилхоҳро нигоҳ. Номи парванда мумкин аст дар истифодаи md5 тасодуфӣ муқаррар карда мешавад. Агар шумо ба нақша ба дарёфти бисёр файлҳо, аз он беҳтар аст, ки ба онҳо киштӣ ба ҷузвдонҳо гуногун. Пас, онро хоҳад қулай. Аз ҷумла, агар шумо мехоҳед, ки ба пок мекунанд.

Барои дарёфти рамзро хоҳад зайл.

/// Бо акс

Агар ($ _FILES [ 'photo1'] [ 'tmp_name'] == ночиз)

{

ҳамовоз ( "

<қавӣ> Номаълум файл.

Баргард ... ");

баромадан;

}

///. Бигӯ: барои ҳар як лоиҳа дар сервер иљозат дода мешавад, ба бор файлҳои калон (ВИДЕО), вале танҳо тасвирҳо, ва истифодабарандагон бояд маҳдуд

Агар (($ _FILES [ «photo1"] [ «андозаи»]> 1024 * 1024 * 2)

{

?>

андозаи ниҳоии иҷозатдодашудаи <қавӣ> 2 MB

Бозгашт ...

баромадан;

}

// ҷузвдонҳо эҷод

// сохтани каталоги моҳи ҷорӣ

Агар (! file_exists ( «IMG /". санаи ( «М»)))

{

mkdir ( «IMG /" санаи ( «М»).);

}

// сохтани каталоги рӯзи ҷорӣ

Агар (! file_exists ( «IMG /". санаи ( «М»). »/». санаи ( «г»)))

{

mkdir ( «IMG /" санаи ( «М») »/» санаи ( «г») ...);

}

дароз файл ///

$ Path_info = pathinfo ($ _ файлҳои [ 'photo1'] [ «номаш» -ро]);

$ EXT = $ path_info [ 'тамдиди'];

/// номи файл барои тавлиди

$ Id = md5 (санаи ( «YMd"));

агар (нусхаи ($ _ файлҳои [ 'photo1'] [ «tmp_name"] «IMG /". санаи ( «М»). »/». санаи ( «г»). »/». $ шиноса. $ EXT) )

{

ҳамовоз ( «парванда бомуваффақият боргузорӣ»);

}

/// ягон амали минбаъда (вуруд дар махзани, ва ғайра. Н.)

}

якчанд файлҳо

Ҳамли якчанд файлҳо (PHP) ба воситаи майдонҳои иловагӣ дар шакли ба амал меояд.

Ин усул аст, хеле хуб нест, зеро он мањдуд шумораи файлҳое, ки зеркашӣ кунед. Гузашта аз ин, он аст, баррасӣ шакли бад дар барномасозӣ. Кӯшиш кунед, ки мекунед, ҳама чизро динамикӣ.

Варианти беҳтарин - ин интихоби шумораи зиёди парвандаҳои якбора ба воситаи пахшкунии тугмаи ягона аст.

Барои ин кор, эҷоди як шакли монанди ин коди.

<Вуруди синфи = "form_upload" навъи = "парванда" ба номи = "file1 []« арзиши сершумор = "Тафсири">

<Синфи вуруди = "form_upload" навъи = "пешниҳод" ба номи = "upldFile" арзиши = "Якҷо карданро" />

Дар хотир доред, ки ғайр аз якчанд калимаро, ва ба номи ҳамчун массиви [] дода мешавад. Дар ин ҳолат, массиви $ _FILES хоҳад каме фарқ. Шумо ќатори аз массиви даст.

Барои санҷидани метавонад боз истифода var_dump ($ _ Files);

Ҳамаи файлҳои шумо бояд дар ќатори ин ҷойгир:

  1. $ _FILES [ «file1"] [ «Номи"] [0]
  2. $ _FILES [ «file1"] [ «Номи"] [1]
  3. Ва ғайра.

Дар қавс буда, шумораи файл дар саф навишта шудааст. Базиси аз сифр. Мо ба онҳо муносибат дар ҳамон тавр, танҳо дар давраи мепурсанд ва тавассути тамос рамзи боло-тасвир дар охири шохиси илова [Ман $].

$ I = 0;

дар ҳоле ки ($ _FILES [ «file1"] [ «Номи"] [$ ман] <> '')

{

/// часбонед, рамзи боло

}

Ҳамин тавр, шумо бояд ба воситаи боргузорӣ файли PHP ба сервер дар як давраи бидуни такрори нолозим аз рамзи рӯй, чунон аст, одатан дар ҳолате, ки агар шумо истифода нусхаи бо шумораи статикӣ файлҳо (охир фото).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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