ՀամակարգիչներՖայլի տեսակներ

PHP ֆայլի վերբեռնել է սերվերի

Բեռնել ֆայլեր միջոցով PHP - շատ հետաքրքիր գործ է, որը պետք է մոտենալ շատ ուշադիր. Է ինտերնետում կարող եք գտնել բազմաթիվ օրինակներ, իրականացման ֆայլի վերբեռնման, բայց ոչ բոլորն են լավ, եւ համապատասխանել կանոնակարգերին:

Նման բաներ պետք է բերել այն եզրակացության, նույնիսկ, եթե դա տեւում է երկար ժամանակ: Եթե դուք թողնել բացը, որ օրենսգրքի, ապա ձեր ամբողջ սերվերի կարող է վտանգել:

անվտանգություն

Հետ PHP ֆայլ վերբեռնել է սերվերի իրականացվում բավական հեշտությամբ: Կոդը շատ կարճ է, եւ պարզ է. Պարզապես մի քանի գծերի. Սակայն, այս մեթոդը վտանգավոր է. Շատ ավելի ժամանակ եւ տող կոդ արտագնա անվտանգության.

Վտանգն այն է, որ, եթե դուք չեք անում ստուգումներ, որեւէ հարձակվողը կարող վերբեռնել իրենց սկրիպտեր ձեր սերվերի. Այս դեպքում, դա հնարավորություն կունենան օգտվելու. Նա կարող է անել այն, ինչ նա ուզում է:

  • ջնջել տվյալների բազան.
  • ջնջել ֆայլեր կայքեր.
  • փոփոխել ֆայլեր կայքեր.
  • Հավելեք ձեր մեկնաբանությունը մոտ գովազդը Ձեր կայքը.
  • բեռնել վիրուսներ.
  • վերահղման բոլոր օգտվողներին իրենց կայքերում.
  • եւ շատ այլ բաներ, որ գալիս է մտքում հարձակվողին:

Դուք պետք է միշտ ստուգեք, որ փորձում է բեռնել ֆայլը համար Օգտվողի մասին. Օրինակ, եթե դուք վերբեռնել պատկերներ միայն, որ դա անհրաժեշտ է հաստատել, որ ֆայլը մի պատկեր ճշգրիտ. Հակառակ դեպքում, Դուք կարող եք ստանալ որեւէ բան:

Թե ինչպես պետք է իրականացնել ստուգման, այն կցուցադրվի հետ անմիջական քննական սցենարի վերբեռնել ֆայլերը.

Ստեղծելով PHP ձեւ

ֆայլ վերբեռնել ձեւը շատ պարզ է. Բացակայում է գտնել կոճակը, եւ վերբեռնման կոճակները.

Նկարագրում է, թե ինչպես պետք է ստեղծել ձեւերը չի, քանի որ դա հեշտ է. Հետագա հրահանգներ է ենթադրել, որ դուք արդեն ունեք հիմնական հասկացությունները HTML (հակառակ դեպքում դուք չեք պետք է փնտրում տեղեկությունների համար մասին բեռնելիս վրա PHP):

Սակայն նշենք, որ տվյալները ձեւով դուք պետք է ավելացնել enctype հատկանիշը:

Հակառակ դեպքում, տվյալների վերաբերյալ ֆայլի handler չի փոխանցվում:

Թե ինչպես է այն պետք է աշխատի:

Երբ դուք սեղմեք browse կոճակը, դուք պետք է տեսնել մի պատուհան, որտեղ խնդրել է ընտրել ֆայլը.

Դրանից հետո այն կպահանջվի ստանալու մի ճանապարհ, որտեղ նշված պատկերի գտնվում:

Եթե ճանապարհը չի հայտնվում, կատարել է գործողություն կրկին.

Այն բանից հետո, սեղմելով վրա բեռնել ֆայլի handler կարող է տալ ցանկացած տեղեկատվություն:

Օրինակ, դուք կարող եք գրել գիծը, որ նշվում է, որ ֆայլը «այդքան եւ այնպես որ« անունը արդեն հաջողությամբ վերբեռնվել է «այդպիսի» թղթապանակում: Իհարկե, ֆայլի անունը կտրվի միշտ տարբեր են:

Որպես կանոն, այս տեղեկատվությունն օգտագործվում է debug կոդը: Այսպիսով, դա հնարավոր է ստուգել, որ այդ տվյալները փոխանցվում է եւ գրում է առաջանալ է ցանկալի դիրեկտորիայի. Այսինքն, նույնիսկ ֆայլի անունը չի նշվում: Քանի որ այս լրացուցիչ տեղեկատվություն, որ օգտագործողը կարիք չունի:

Այն ստիպում է անիմաստ է արտադրանքի անունը միայն այն դեպքում, եթե օգտագործողը ներքաշում բազմաթիվ ֆայլեր. Նման այն դեպքն է, համարում է մի քիչ ավելի: Եկեք չեն ստանում առաջ ինքներս մեզ:

հարմարեցում

PHP - ֆայլի վերբեռնել է սերվերի պահանջում որոշակի կարգավորումներ, որոնք պետք է անել է php.ini ֆայլը. Այս ֆայլը պարունակում է մի շատ պարամետրեր. Նրանք բոլորն էլ մեզ պետք չեն: Մենք շահագրգռված ենք երեք գծերի file_uploads, upload_tmp_dir եւ upload_max_filesize:

Խնդրում ենք նկատի ունենալ, որ այդ կարգավորումները կազդի ձեր բոլոր կայքերի վրա սերվերի, ոչ միայն որեւէ մեկը: Հետեւաբար, պետք է սահմանել առավելագույն չափը հիմնված է այն փաստի վրա, որ դուք պետք է բեռնել օգտվողներին. Այն խորհուրդ չի տրվում սահմանել չափազանց մեծ է:

Մեկ անգամ եք փոխել արժեքները այդ պարամետրերի, դուք պետք է վերագործարկել սերվերը: Հակառակ դեպքում կարգավորումները ազդեցություն չեն ունենա, քանի որ նրանք կարդում ժամանակ սերվերի բեռը.

Դուք կարող եք անել դա է մխիթարել է միացնելու միջոցով SSH է սերվերի. Պարզապես մուտքագրեք հրամանը ծառայողական HTTPD վերսկսել, իսկ հետո կարգավորումները կգործեն:

Մեկ այլ մեթոդ - ը վերսկսել միջոցով ISP-վահանակի միջոցով կամ բիլինգային վահանակի պրովայդերի.

array ֆայլի

PHP - ֆայլ վերբեռնել կատարվում է զանգված $ _FILES: Այն պարունակում է բոլոր տեղեկություններ ֆայլերը, որոնք մենք ներբեռնել.

Տեսնել, թե ինչ տեղեկատվություն է պարունակվում զանգված, բավական է գրել ֆայլի handler հետեւյալը.

Ընտրել ցանկացած ֆայլը եւ սեղմեք "Վերբեռնել:» Ին handler էջում կցուցադրեն այն տեղեկությունները, որոնք պահվում է $ _FILES. Փոփոխական է գրված ամբողջությամբ մեծատառերով: PHP - ը լեզվի զգայուն.

Ինչպես դուք կարող եք տեսնել, որ այս զանգված ունի շատ ոլորտներում. Բոլորն էլ կարեւոր են մեզ համար: Առաջին դաշտը պարունակում է ֆայլի անունը ձեւով, որով այն օգտագործվում է ձեր համակարգչի համար.

The տեսակը սյունակում նշված ֆայլի տեսակ. Tmp_name դաշտը համապատասխանում է անունով ժամանակավոր ֆայլը. Ավարտից հետո սցենարի կջնջվեն:

Որ սխալ դաշտը պարունակում է սխալի կոդ: Սա մի քիչ ավելի: Չափը, չափը բայթերով:

սխալները

Իրականացվում միջոցով PHP ֆայլի վերբեռնման միշտ ուղեկցվում է սխալի կոդը: Սխալ հաղորդագրություն մտել է «սխալի»: Հատված սխալ է զրոյական.

Համարում արժեքը բոլոր սխալների:

Ասվում էր, վերեւում մասին պարամետրի, որը կարող է նշված սովորական HTML:

Ահա մի նմուշ ձեւ է բեռնել ֆայլը, որը ցույց է տալիս, սահմանաչափը չափով Վերբեռնված ֆայլը.

PHP ֆայլի վերբեռնել script

Քանի որ բոլոր իրականացվել գործնականում. PHP - ֆայլի վերբեռնել տեղի է ունենում պատճեն հրամանը: Եթե դուք հետաքրքրված են այն հարցին, թե ինչպես է բեռնել ֆայլը, պատասխանը պարզ է copy-, որը օգտագործում է երկու պարամետրերը - ի աղբյուրը ֆայլը եւ նշանակման ֆայլը.

Սակայն, ինչպես հայտարարել է վերեւում, այն չի կարող լինել սահմանափակվում է անվտանգության նկատառումներով: Օրինակ, ստուգել, թե ինչ տեսակի ֆայլ մենք առաքում, դուք կարող եք օգտագործել դաշտային մուտքագրել զանգված $ _FILES: Նախ, եկեք զբաղվել ստուգման, ապա շարժվել դեպի լիարժեք սցենարի

Եկեք ասում են, դուք ուզում եք թույլ է տալիս օգտվողներին վերբեռնել մի լուսանկար որոշմամբ միայն GIF, JPEG կամ PNG. Ցույց են տալիս, որ դա կարող է լինել նման:

եթե ($ _ FILES [ 'file_upload'] [ 'type']! = "image / gif") {
echo "Ներեցեք, մենք աջակցում ենք միայն բեռնելիս GIF ֆայլեր".
ելքի;
}

Եթե դուք ուզում եք առաքել բոլոր 3 տեսակի, պարզապես ավելացնել լրացուցիչ պայման է մյուս տեսակի պատկերով:

Պատճենահանման արվում հավանում են սա: օրինակի (պատկերի 1, պատկերի 2):

Մեր դեպքում, երբ աշխատանքը բեռնելիս է PC սերվեր, Դուք կարող եք դա անել, այնքան

պատճենը ($ _ FILES [ 'file_upload'] [ «tmp_name"], «1.jpg")

Այսինքն, այդ ֆայլը կլինի պատճենված հետ անունը 1.jpg: Սա ճիշտ չէ: Այս դեպքում, դա միայն մի օրինակ: The ֆայլի անունը միշտ անհրաժեշտ է ճշտել տարբեր են, եւ նշեք երկարաձգման, կախված ֆայլը.

Որոշելու երկարացումը կարող է լինել տարբեր եղանակներ: Այն ամենը կախված է մշակողի կարդացած լինելը. Մեկը ամենաարագ ուղիներ (տարբերությամբ տասներորդ վայրկյանում) որոշում է երկարաձգում, - սա է հաջորդ կոդը:

$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ «անունը»]).

$ Ext = $ path_info [ 'ընդլայնում'];

Փոփոխական $ ապա ներքին մենք պետք է պահել ցանկալի երկարաձգման. A ֆայլի անունը կարող է սահմանվել է պատահական օգտագործելով MD5: Եթե Դուք պլանավորում եք բեռնել բազմաթիվ ֆայլեր, ապա ավելի լավ է առաքել դրանք տարբեր թղթապանակների. Այնպես որ, դա կլինի ավելի հարմար է. Մասնավորապես, եթե դուք ուզում եք մաքրել:

Ինչպես ներբեռնել կոդը կլինի հետեւյալն են.

/// հետ լուսանկար

եթե ($ _FILES [ 'photo1'] [ 'tmp_name'] == Null)

{

Էխո ( «

Անհայտ ֆայլը.

Վերադառնալ ... ");

ելքի;

}

///. Ասում եմ ձեզ ցանկացած ծրագրի սերվերի վրա թույլատրվում է բեռնել մեծ ֆայլեր (վիդեո), բայց կան միայն նկարներ, եւ օգտվողները պետք է սահմանափակել

եթե (($ _FILES [ «photo1"] [ «չափ»]> 1024 * 1024 * 2)

{

?>

առավելագույն թույլատրելի չափը 2 MB

Վերադառնալ ...

ելքի;

}

// ստեղծել թղթապանակներ

// ստեղծել թղթապանակ է ընթացիկ ամսվա

if (! file_exists ( "img /»: ամսաթիվը ( "M")))

{

mkdir ( "img /" ամսաթիվը ( "M"));

}

// ստեղծել թղթապանակ է ընթացիկ օրվա

if (! file_exists ( "img /»: ամսաթիվը ( "M"): »/»: ամսաթիվը ( «դ»)))

{

mkdir ( "img /" ամսաթիվը ( "M") "/" ամսաթիվը ( «դ») ...).

}

/// ֆայլի ընդլայնում

$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ «անունը»]).

$ Ext = $ path_info [ 'ընդլայնում'];

/// առաջացնում ֆայլի անունը

$ Id = MD5 (ամսաթիվը ( «YMd"));

եթե (պատճենը ($ _ FILES [ 'photo1'] [ «tmp_name", "img /»: ամսաթիվը ( "M"): »/»: ամսաթիվը ( «դ»): »/»: $ id: $ լր) )

{

Էխո ( «հաջողությամբ ֆայլ վերբեռնվել");

}

/// ցանկացած հետագա գործողություն (մուտք է տվյալների բազայում, եւ այլն: Ն.):

}

բազմակի ֆայլերի

Վերբեռնելով բազմակի ֆայլերի (PHP) տեղի է ունենում միջոցով լրացուցիչ ոլորտներում ձեւով.

Այս մեթոդը չէ, շատ լավ է, քանի որ այն սահմանափակում է մի շարք ֆայլերի ներբեռնման համար. Ընդ որում, դա համարվում է վատ ձեւ է ծրագրավորման. Փորձում ենք անել ամեն ինչ, դինամիկ:

Իդեալական տարբերակն այն է, ընտրությունը մի շարք ֆայլերի միանգամից սեղմելով մի կոճակը.

Որպեսզի դա անել, ստեղծել ձեւավորել նման սույն օրենսգրքի:

Նկատի ունեցեք, որ բազմակի Բացի այդ բառի, եւ անունը տրվում է որպես զանգված []: Այս դեպքում, $ _FILES զանգված է լինելու մի փոքր այլ է: Դուք կարող եք ստանալ մի զանգված է գրանցվեք:

Փորձարկել կարող է կրկին օգտագործել var_dump ($ _ ֆայլեր).

Ձեր բոլոր ֆայլերը կտեղադրվեն զանգվածի նման:

  1. $ _FILES [ «file1"] [ "name"] [0]
  2. $ _FILES [ «file1"] [ "name"] [1]
  3. Եվ այսպես շարունակ:

Փակագծերում գրված ֆայլի համարը զանգված: Հաշվելով զրոյից. Մենք բուժել դրանք նույն կերպ, պարզապես հարցրեք ցիկլը եւ կապվելով վերը նկարագրված կոդ վերջում ցուցանիշից հավելելով, [$ i]:

$ I = 0;

իսկ ($ _FILES [ «file1"] [ "name"] [$ i] <> '')

{

/// տեղադրեք վերը նշված կոդը

}

Այսպիսով, դուք պետք է տեղի ունենա միջոցով PHP ֆայլ վերբեռնել սերվերի մեկ ցիկլի առանց ավելորդ կրկնությունից օրենսգրքի, ինչպես սովորաբար այն դեպքում, եթե դուք օգտագործեք տարբերակը մի ստատիկ շարք ֆայլերի (վերջին ֆոտոռեպորտաժ):

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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