ᲙომპიუტერებიᲤაილის ტიპები

PHP: ფაილის ატვირთვა სერვერზე

ფაილების ჩამოტვირთვის მეშვეობით PHP - ძალიან საინტერესო საქმე, რომელიც უნდა მიუახლოვდა ძალიან ფრთხილად. ინტერნეტში ნახავთ უამრავ მაგალითები განხორციელების ფაილის ატვირთვა, მაგრამ არა ყველა მათგანი კარგი და აკმაყოფილებს უსაფრთხოების ნორმებს.

ასეთი რამ გვჭირდება, რათა დასკვნა, თუნდაც ის დიდი ხნის განმავლობაში. თუ თქვენ სიცარიელეს კოდი, მაშინ თქვენი სერვერზე შეიძლება დათმობაზე წავიდა.

უსაფრთხოების

ერთად PHP ფაილის ატვირთვა სერვერზე ხორციელდება საკმაოდ მარტივად. კოდი არის ძალიან მოკლე და მარტივი. მხოლოდ რამდენიმე ხაზები. თუმცა, ამ მეთოდით არის სახიფათო. გაცილებით მეტი დრო და ხაზი კოდი დაშორებით უსაფრთხოებას.

საფრთხე არის, რომ, თუ არ გააკეთებს, ინსპექტირების, ნებისმიერი თავდამსხმელი შეიძლება ატვირთეთ მათი სკრიპტები თქვენს სერვერზე. ამ შემთხვევაში, მას ექნება სრული წვდომა. მას შეუძლია გააკეთოს ის, რაც სურს:

  • წაშლა მონაცემთა ბაზაში;
  • წაშლა ფაილი საიტები;
  • ცვლილებები ფაილი საიტები;
  • დაამატეთ თქვენი რეკლამა თქვენი ნახვა;
  • ჩამოტვირთვა ვირუსები;
  • გადამისამართება ყველა წევრებს მათი საიტები;
  • და ბევრი სხვა რამ, რომ მოდის იბადება თავდამსხმელი.

თქვენ ყოველთვის უნდა შეამოწმოს, რომ ცდილობს ჩამოტვირთოთ ფაილი შესახებ. მაგალითად, თუ თქვენ ატვირთეთ images მხოლოდ, აუცილებელია, გადაამოწმონ, რომ ფაილი არის გამოსახულება ზუსტად. წინააღმდეგ შემთხვევაში, თქვენ ჩამოტვირთოთ არაფერი.

ზუსტად როგორ უნდა განახორციელოს გადამოწმების, ეს ნაჩვენები იქნება, პირდაპირი შემოწმება script ატვირთეთ ფაილი.

შექმნა PHP ფორმა

ფაილის ატვირთვის ფორმა ძალიან მარტივია. დაკარგული დათვალიერებისას ღილაკს და upload ღილაკები.

აღწერილია, თუ როგორ შექმნათ ფორმები არ არის, იმიტომ, რომ ეს არ არის ადვილი. შემდგომი ინსტრუქციები ვივარაუდოთ, რომ თქვენ უკვე გაქვთ ძირითადი ცნებები HTML (წინააღმდეგ შემთხვევაში თქვენ არ იქნება ეძებს ინფორმაციას ჩამოტვირთვის PHP).

თუმცა აღნიშნავენ, რომ მონაცემების სახით თქვენ უნდა დაამატოთ enctype ატრიბუტი.

წინააღმდეგ შემთხვევაში, მონაცემთა ფაილი კურატორმა არ იქნება გადაცემული.

როგორ უნდა იმუშაოს?

როდესაც თქვენ დააჭირეთ ღილაკს Browse დაინახავთ ყუთი, სადაც სთხოვა აირჩიოს ფაილი.

მას შემდეგ, რაც საჭირო იქნება მიიღოს გეზი, სადაც ფაილი მდებარეობს.

თუ გზას არ ჩანს, შეასრულოს ქმედება კიდევ ერთხელ.

შემდეგ დაჭერით ჩამოტვირთვა ფაილი კურატორმა შეუძლია ნებისმიერი ინფორმაცია.

მაგალითად, თქვენ შეგიძლიათ დაწეროთ ხაზი, რომელიც აცხადებს, რომ ფაილი "ასე და ასე" სახელით უკვე წარმატებით აიტვირთა "ასეთი და ასეთი" ფოლდერში. რა თქმა უნდა, ფაილის სახელი მიენიჭება ყოველთვის განსხვავებულია.

როგორც წესი, ეს ინფორმაცია გამოიყენება გამართვის კოდი. ამიტომ შესაძლებელია, რათა დარწმუნდეს, რომ მონაცემები გადაიცემა და წერს მოხდეს სასურველი დირექტორია. რომ არის, თუნდაც ფაილის სახელი არ არის მითითებული. მას შემდეგ, რაც ამ დამატებითი ინფორმაცია, რომ მომხმარებელს არ სჭირდება.

ის აზრი, რომ გამომავალი სახელით მხოლოდ იმ შემთხვევაში, თუ მომხმარებელი გადმოწერა რამოდენიმე ფაილი. ასეთ შემთხვევაში, მიიჩნევენ, ცოტა შემდგომი. მოდით არ მიიღონ წინ საკუთარ თავს.

რეგულირება

In PHP ფაილის ატვირთვა სერვერზე მოითხოვს გარკვეული პარამეტრები, რომელიც უნდა გაკეთდეს php.ini ფაილში. ეს ფაილი შეიცავს ბევრი პარამეტრები. ისინი ყველა, ჩვენ არ გვჭირდება. ჩვენ დაინტერესებული ვართ სამი ხაზი: file_uploads, upload_tmp_dir და upload_max_filesize.

გთხოვთ გაითვალისწინოთ, რომ ამ პარამეტრების იმოქმედებს ყველა თქვენი საიტები სერვერზე, და არა მხოლოდ რომელიმე. აქედან გამომდინარე, შექმნას მაქსიმალური ზომა ეფუძნება იმ ფაქტს, რომ თქვენ უნდა გადაწეროთ მომხმარებლებს. ეს არ არის რეკომენდირებული შექმნას ძალიან დიდი.

მას შემდეგ, რაც თქვენ შეცვლით ღირებულებების ამ პარამეტრების, თქვენ უნდა გადატვირთეთ სერვერზე. წინააღმდეგ შემთხვევაში პარამეტრების არ შევა, რადგან ისინი წაიკითხა დროს სერვერზე დატვირთვა.

თქვენ შეგიძლიათ ამის გაკეთება კონსოლში დამაკავშირებელი მეშვეობით SSH სერვერზე. უბრალოდ შეიყვანოთ ბრძანება მომსახურება httpd გადატვირთვა, და შემდეგ ძალაში შევა.

კიდევ ერთი მეთოდი - გადატვირთვა მეშვეობით ISP-panel მეშვეობით ან ბილინგის panel მიმწოდებელი.

Array ფაილი

In PHP ფაილის ატვირთვა კეთდება მასივი $ _FILES. იგი შეიცავს ყველა ინფორმაცია ფაილი, რომელიც ჩვენ ჩამოტვირთოთ.

ვნახოთ, რა ინფორმაციას შეიცავს მასივი, საკმარისი დაწერა ფაილი კურატორმა შემდეგ.

აირჩიეთ ნებისმიერი ფაილი და დააჭირეთ "ატვირთვა". On კურატორმა გვერდი ცარიელია ინფორმაცია, რომელიც ინახება $ _FILES. ცვლადი არის დაწერილი მთლიანად ასოებით. PHP - ენის მგრძნობიარეა.

როგორც ხედავთ, ამ მასივი აქვს ბევრი სფეროებში. ყველა მათგანი მნიშვნელოვანია ჩვენთვის. პირველი ველი შეიცავს ფაილის სახელი სახით, რომელიც გამოიყენება თქვენს კომპიუტერში.

ტიპის სვეტი მითითებული ფაილის ტიპი. Tmp_name სფეროში შეესაბამება სახელწოდება დროებითი ფაილი. მას შემდეგ, რაც ბოლოს script წაიშლება.

შეცდომა ველი შეიცავს, შეცდომის კოდი. ეს იყო ცოტა შემდგომი. ზომა - ზომა ბაიტებში.

შეცდომები

ხორციელდება PHP ფაილის ატვირთვა ყოველთვის თან ახლავს შეცდომის კოდი. შეცდომა შევიდა "შეცდომა". სკრინშოტი შეცდომა არის ნულოვანი.

განიხილოს ღირებულება ყველა შეცდომები:

ეს ითქვა შესახებ პარამეტრი, რომელიც შეიძლება მითითებული ჩვეულებრივი HTML.

აქ არის ნიმუში ფორმა ატვირთოთ ფაილი, რომელიც მიუთითებს, ლიმიტი თანხის ატვირთული ფაილი.

PHP: ფაილის ატვირთვა script

როგორც ყველა განახორციელა პრაქტიკაში? In PHP ფაილის ატვირთვა ხდება კოპირება. თუ თქვენ ხართ დაინტერესებული კითხვაზე, თუ როგორ უნდა ჩამოტვირთოთ ფაილი, პასუხი მარტივია copy-, რომელიც იყენებს ორი პარამეტრი - წყარო ფაილი და დანიშნულების ფაილი.

მაგრამ, როგორც ზემოთ აღვნიშნეთ, ეს არ შეიძლება იყოს შეზღუდული უსაფრთხოების მიზეზების გამო. მაგალითად, შეამოწმოს, თუ რა სახის ფაილი, მოვახდენთ, შეგიძლიათ გამოიყენოთ სფეროში ტიპის მასივი $ _FILES. პირველ რიგში, მოდით გაუმკლავდეთ ინსპექციის და შემდეგ გადაადგილება სრული script

მოდით ვთქვათ გსურთ საშუალებას მომხმარებლებს ატვირთეთ ფოტო მოგვარების მხოლოდ GIF, JPEG და PNG. მიუთითეთ ეს შეიძლება იყოს მოსწონს ეს.

if ($ _ FILES [ 'file_upload'] [ 'type']! = "image / gif") {
echo "ბოდიში, ჩვენ მხარს ვუჭერთ მხოლოდ ჩამოტვირთვის Gif-Files";
გასასვლელი;
}

თუ გსურთ დაძრულიყო ყველა 3 სახის, უბრალოდ დამატებით პირობად სხვა ტიპის იმიჯი.

გადაწერა კეთდება, როგორც ეს: ასლი (image 1, სურათი 2).

ჩვენს შემთხვევაში, როდესაც სამუშაო ჩამოტვირთვის PC სერვერზე, თქვენ შეგიძლიათ ამის გაკეთება

ასლი ($ _ FILES [ 'file_upload "] [" tmp_name "]" 1.jpg ")

რომ არის, ფაილი იქნება გადაწერა სახელით 1.jpg. ეს არ არის მთლიანად სწორი. ამ შემთხვევაში, ეს მხოლოდ მაგალითია. ფაილის სახელი ყოველთვის აუცილებელია მიუთითოთ განსხვავებული და დააკონკრეტა, გაფართოება, რაც დამოკიდებულია ფაილი.

განსაზღვრა გაფართოება შეიძლება იყოს სხვადასხვა გზები. ეს ყველაფერი დამოკიდებულია დეველოპერი erudition. ერთ-ერთი უსწრაფესი გზა (განსხვავება მეათედი წამი) განსაზღვრავს გაფართოება - ეს არის შემდეგი კოდი.

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

$ Ext = $ path_info [ 'გაგრძელების'];

ცვლადი $ ext შევინახავთ სასურველი გაფართოება. ფაილის სახელი შეიძლება მითითებული შემთხვევითი გამოყენებით md5. თუ თქვენ აპირებთ ჩამოტვირთოთ ბევრი ფაილი, უმჯობესია მოვახდენთ მათ სხვადასხვა ფოლდერები. ასე რომ, ეს იქნება უფრო მოსახერხებელია. კერძოდ, თუ გსურთ გაწმენდის.

ჩამოტვირთოთ კოდი იქნება შემდეგი.

/// ფოტოსურათი

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

{

echo ( "

Unknown ფაილი.

უკან ... ");

გასასვლელი;

}

///. ამბობენ, რომ თქვენ ნებისმიერი პროექტის სერვერზე ნებადართულია ჩატვირთვა დიდი ფაილი (video), მაგრამ არსებობს მხოლოდ სურათები, და წევრებს უნდა შეზღუდოს

თუ (($ _FILES [ "photo1"] [ "ზომა"]> 1024 * 1024 * 2)

{

?>

დაშვებულ ზომა 2 MB

უკან ...

გასასვლელი;

}

// შექმნათ ფოლდერები

// შევქმნათ საქაღალდე მიმდინარე თვის

თუ (! file_exists ( "img /". თარიღი ( "M")))

{

mkdir ( "img /" თარიღი ( "M").);

}

// შევქმნათ საქაღალდე მიმდინარე დღის

თუ (! file_exists ( "img /". თარიღი ( "M"). "/". თარიღი ( "დ")))

{

mkdir ( "img /" თარიღი ( "M") "/" თარიღი ( "დ") ...);

}

/// ფაილის გაფართოება

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

$ Ext = $ path_info [ 'გაგრძელების'];

/// წარმოქმნის filename

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

თუ (ასლი ($ _ FILES [ 'photo1 "] [" tmp_name "]" img / ". თარიღი (" M ")." / ". თარიღი (" დ ")." / ". $ id. $ ext) )

{

echo ( "ფაილი წარმატებით აიტვირთა");

}

/// რაიმე ქმედება (შესვლის მონაცემთა ბაზაში, და ასე შემდეგ. N.)

}

რამოდენიმე ფაილი

ატვირთვა მრავალი ფაილი (PHP) ხდება, როდესაც დამატებითი ველების სახით.

ეს მეთოდი არ არის ძალიან კარგი, როგორც ეს ზღუდავს რაოდენობის ფაილების ჩამოტვირთვა. უფრო მეტიც, იგი ითვლება ცუდი ფორმა პროგრამირებაში. ვცდილობთ გავაკეთოთ ყველაფერი, დინამიური.

იდეალური ვარიანტი - ეს არის არჩევანი დიდი რაოდენობით ფაილი ერთდროულად დაჭერით ერთ ღილაკს.

ამისათვის, შექმნა ფორმის მოსწონს ეს კოდი.

<ფორმა method = "POST" action = "Link შეიტანოს კურატორმა" name = "upload_form" enctype = "multipart / form-data">

<შეყვანის class = "form_upload" type = "ფაილი" name = "file1 []" მრავალი მნიშვნელობა = "მიმოხილვა">

<შეყვანის class = "form_upload" type = "submit" name = "upldFile" value = "დამატება" />

გაითვალისწინეთ, რომ მრავალი დამატებით სიტყვა და სახელი ეძლევა მასივი []. ამ შემთხვევაში, $ _FILES მასივში იქნება ოდნავ განსხვავებული. თქვენ მიიღებთ მასივი მასივი.

შესამოწმებლად შეგიძლიათ კვლავ გამოიყენოთ var_dump ($ _ FILES);

ყველა თქვენი ფაილი დაიდება მასივი მოსწონს ეს:

  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 ka.birmiss.com. Theme powered by WordPress.