КомпјутериТипови фајлова

Пхп: Филе Уплоад на сервер

Преузимање датотека преко ПХП - веома интересантан случај, на које се мора приступити веома пажљиво. На интернету можете наћи бројне примере имплементације филе уплоад, али не сви од њих су добри и задовољава потребне мере безбедности.

Такве ствари треба да доведе до закључка, чак и ако је потребно много времена. Ако оставите празнину у коду, онда цео ваш сервер може бити доведена у питање.

безбедност

Са ПХП филе уплоад на сервер се обавља веома лако. Код је веома кратко и једноставно. Само пар редова. Међутим, ова метода је опасна. Много више времена и линија кода на гостовању безбедности.

Опасност је у томе, ако не урадите инспекције, било нападач могао да постављају своје скрипте на серверу. У овом случају, то ће имати пун приступ. Он може да ради шта хоће:

  • обришете базу података;
  • Делете филес сајтове;
  • модификовати датотеке сајтове;
  • додати свој оглас са сајта;
  • скидање вирусе;
  • преусмерити све кориснике на својим сајтовима;
  • и многе друге ствари које ми падају на памет нападача.

Увек треба да проверите да ли покушава да преузме датотеку за корисника. На пример, ако поставите само слике, неопходно је да се провери да је датотека слика тачно. У супротном, ви ћете преузети све.

Тачно како да спроведе верификацију, биће приказано, са директном испитивању сценарију учитавању фајлова.

Креирање обрасца ПХП

Филе Уплоад облик је веома једноставна. Миссинг тастере дугме Потражи и уплоад.

Описује како створити форме неће, зато што је лако. Даље инструкције да већ имају основни појмови ХТМЛ (иначе не би се траже информације о преузимању на ПХП).

Али имајте на уму да су подаци у облику треба да додате енцтипе атрибут.

У супротном, подаци о фајла руковалац неће се преносити.

Како би требало да ради?

Када кликнете на дугме бровсе треба да видите оквир где тражио да изабере датотеку.

Након тога ће бити потребно да добије путању где се налази датотека.

Ако путања не појави, изврши радњу поново.

Након што кликнете на Довнлоад Филе руковалац може дати било какву информацију.

На пример, можете да напишете линију у којој се наводи да је датотека "тако и тако" назив је отпремљен у "такав и такав" фолдер. Наравно, име датотеке ће имати увек другачији.

Типично, ове информације се користе за отклањање грешака код. Тако је могуће да се провери да се подаци преносе и пише се јављају у жељеном директоријуму. То је, чак и име датотеке није назначено. Од ове додатне информације које корисник не треба.

Има смисла да се излаз име само ако је корисник преузме више датотека. Такав је случај, размислите мало даље. Немојмо се пред руду.

подешавање

У ПХП филе уплоад на сервер захтева одређене поставке, која би требало да се уради у пхп.ини датотеци. Овај фајл садржи много подешавања. Сви они нам не треба. Ми смо заинтересовани за три линије: филе_уплоадс, уплоад_тмп_дир и уплоад_мак_филесизе.

Имајте на уму да ће се ова подешавања утичу на све своје сајтове на серверу, а не само једну. Стога, да подесите максималну величину на основу чињенице да ће морати да учита корисника. Није препоручљиво да сувише велики.

Када промените вредности у овим параметрима, треба да поново покренете сервер. У супротном поставке неће ступити на снагу, као што су прочитали у време оптерећења сервера.

То се може урадити у конзолу повезивањем преко ССХ на серверу. Једноставно унесите хттпд рестарт команде сервис, а онда подешавања ће ступити на снагу.

Други метод - поновно покретање преко ИСП-панела или кроз наплату провајдера панел.

арраи фајл

У ПХП Филе Уплоад врши низа $ _ФИЛЕС. Она садржи све информације о датотекама које преузимају.

Да видимо шта се информације садржане у низу, довољно да напише у фајл руковалац прати.

Изаберите било који фајл и кликните на "Уплоад". На утоваривач странице ће приказати информације које се чувају у $ _ФИЛЕС. Променљива је написано у потпуности са словима. Тект - језик осетљив.

Као што се види, у овом низу има много поља. Сви они су нам веома важни. Прво поље садржи назив датотеке у облику у којем се користи на рачунару.

Колона тип прецизирао тип датотеке. Тмп_наме поље одговара имену привремених датотека. Након завршетка скрипта ће бити избрисани.

поље грешка садржи код грешке. То је мало даље. Величина - величина у бајтовима.

greške

Спроводи кроз ПХП филе уплоад је увек праћена кодом грешке. Порука о грешци ушао у "грешком". Грешка с нула.

Размислите вредност свих грешака:

То је речено у вези параметар који се може наведен у уобичајеном ХТМЛ.

Овде је обрасца да свалите фајла, који указује на ограничење износа отпремљене датотеке.

Пхп: Филе Уплоад скрипта

Као сви спроводи у пракси? У ПХП Филе Уплоад јавља команду копију. Уколико сте заинтересовани за питање како да преузмете датотеку, одговор је једноставан копирања, који користи два параметра - изворни фајл и дестинације фајл.

Али, као што је већ речено, то не може бити ограничен из безбедносних разлога. На пример, погледајте какву фајлу брод, можете користити тип поља у низу $ _ФИЛЕС. Прво, хајде да се баве инспекцијом, а затим пређите на пуну скрипту

Рецимо да желите да омогући корисницима да уплоад слику са резолуцијом од само ГИФ, ЈПЕГ или ПНГ. Указују на то може да буде овако.

ако ($ _ ФИЛЕС [ 'филе_уплоад'] [ 'тип']! = "имаге / јпег") {
ецхо "Жао ми је, подржавају само преузимања ГИФ-Филес";
излаз;
}

Ако желите да испоручи све 3 врсте, једноставно додати додатни услов за другу врсту слике.

Копирање се врши овако: копија (слика 1, слика 2).

У нашем случају, када се рад преузима са рачунара на сервер, можете то урадити

копија ($ _ ФИЛЕС [ 'филе_уплоад'] [ "тмп_наме"], "1.јпг")

То је, датотека ће бити копирана са именом 1.јпг. Ово није потпуно тачно. У овом случају, то је само један пример. Име датотеке је увијек потребно навести другачији, и одредити екстензију, зависно од датотеке.

Одредите продужење може бити на различите начине. Све зависи од програмера у образованости. Један од најбржих начина да (за разлику од десетина секунди) утврђује продужење - ово је следећи број.

$ ПАТХ_ИНФО = патхинфо ($ _ ФИЛЕС [ 'пхото1'] [ "наме"]);

$ Ект = $ ПАТХ_ИНФО [ 'ектенсион'];

Променљива $ ЕКСТ ћемо чувати жељену екстензију. Име датотеке може да се подеси на случајном користећи МД5. Ако планирате да преузмете много фајлова, боље је да их испоручи у различите фасцикле. Тако да ће бити згодније. Конкретно, ако желите да очисти.

да преузмете код ће бити на следећи начин.

/// Са сликом

иф ($ _ФИЛЕС [ 'пхото1'] [ 'тмп_наме'] == нулл)

{

ехо ( "<п> <стронг> Непозната датотека. , <п> <а хреф='јавасцрипт:хистори.бацк()'> Назад ... ");

излаз;

}

///. Рецимо да за било који пројекат на серверу није дозвољено да учита великих датотека (видео), али постоје само слике, а корисници треба да ограниче

иф (($ _ФИЛЕС [ "пхото1"] [ "сизе"]> 1024 * 1024 * 2)

{

?>

<П> максимална дозвољена величина <стронг> 2 МБ

<П> <а хреф='јавасцрипт:хистори.бацк()'> Назад ...

излаз;

}

// креирате фолдере

// креира директоријум у текућем месецу

ако (! филе_екистс ( "имг /". датум ( "П")))

{

мкдир ( "имг /" датум ( "П").);

}

// креира директоријум тренутног дана

ако (! филе_екистс ( "имг /". датум датум ( "г" ( "П"). "/".)))

{

мкдир ( "имг /" датум ( "П") "/" датум ( "г") ...);

}

/// Филе Ектенсион

$ ПАТХ_ИНФО = патхинфо ($ _ ФИЛЕС [ 'пхото1'] [ "наме"]);

$ Ект = $ ПАТХ_ИНФО [ 'ектенсион'];

/// генерисати име фајла

$ Ид = мд5 (дате ( "ИМД"));

ако (копија ($ _ ФИЛЕС [ 'Фото1'] [ "тмп_наме"], "имг /". датум ( "П"). "/". датум ( "г"). "/". $ ИД. $ лок) )

{

ехо ( "Фајл успешно уплоадед");

}

/// даље акције (улазак у бази података, и тако даље. С.)

}

више датотека

Отпремање више датотека (ПХП) настаје путем додатних поља у форми.

Ова метода није баш добро, јер ограничава број датотека за преузимање. Осим тога, сматра се лоше облик у програмирању. Покушати да уради све динамичан.

Идеална опција - то је избор великог броја датотека одједном само једним притиском на дугме.

Да бисте то урадили, направите облик као што је овај код.

<Форм метход = "пост" ацтион = "Ссилка на фајл манипулатора" наме = "уплоад_форм" енцтипе = "тект / форм-дата">

<П>

<Инпут цласс = "форм_уплоад" типе = "филе" наме = "филе1 []" мултипле валуе = "Овервиев">

<Инпут цласс = "форм_уплоад" типе = "субмит" име = "уплдФиле" вредност = "Додај" />

Имајте на уму да вишеструко додавања речи, а име се даје као низ []. У овом случају, $ _ФИЛЕС низ ће бити мало другачија. Добићете низ поља.

Да би тестирали могу поново користити вар_думп ($ _ ФИЛЕС);

Све датотеке ће бити постављен у низу овако:

  1. $ _ФИЛЕС [ "фајл1"] [ "име"] [0]
  2. $ _ФИЛЕС [ "фајл1"] [ "име"] [1]
  3. И тако даље.

У загради пише број датотеке у низу. Рачунајући од нуле. Ми смо их третирамо на исти начин, само питајте циклус и контактирали горе описано код на крају индекса додајући [$ и].

$ И = 0;

вхиле ($ _ФИЛЕС [ "филе1"] [ "наме"] [$ и] <> '')

{

/// налепите горе код

}

Дакле, мораћете да се догоди кроз тект филе уплоад на сервер у једном циклусу, без непотребног понављања кода, као што је то обично случај ако користите верзију са статичком бројем фајлова (прошле фотографија).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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