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

1 post in this topic

[center][size=6][color=#FF0000][b]ფაილის ატვირთვა სერვერზე PHP ს საშუალებით[/b][/color][/size][/center]


ალბათ ყველას გინახავთ ვებ საიტებზე ფაილის (სურათის ,დოკუმენტის ,არქივის და ა.შ ) ატვირთვის ფუნქცია ,მგონი დაინტერესდებოდით დამწყებები თუ როგორ კეთდება ეს ,ეს თემაც სწორედ იმისთვისაა რომ ისწავლოთ ამ ფუნქციის რეალიზაცია[list]
[*]პირველ რიგში უნდა გავაკეთოთ HTML ფორმა .
[/list]
[color=#0000FF]<form[/color] [color=#FF0000]action[/color]="[color=#000080]/upload.php[/color]" [color=#FF0000]method[/color]="[color=#000080]post[/color]"[color=#FF0000] enctype[/color]="[color=#000080]multipart/form-data[/color]"[color=#0000FF]>[/color]
[b][color=#000000]აირჩიეთ ფაილი ასატვირთად[/color][/b]:[color=#0000FF]<br>[/color]
[color=#0000FF]<input [/color][color=#FF0000]type[/color]="[color=#000080]file[/color]" [color=#FF0000]name[/color]="[color=#000080]my_file[/color]"[color=#0000FF]>[/color]
[color=#0000FF]<br><br>[/color]
[color=#0000FF]<input[/color][color=#FF0000] type[/color]="[color=#000080]submit[/color]" [color=#FF0000]value[/color]="[color=#000080]ატვირთვა[/color]"[color=#0000FF]>[/color]
[color=#0000FF]</form[/color]>

[b]დააკვირდით[/b] ,[color=#FF0000]enctype[/color]="[color=#000080]multipart/form-data[/color]" ეს აუცილებელი პარამეტრია ,ამ პარამეტრის გარეშე ეს ფუნქცია არ იმუშავებს .
[color=#0000FF]<input [/color][color=#FF0000]type[/color]="[color=#000080]file[/color]" [color=#FF0000]name[/color]="[color=#000080]my_file[/color]"[color=#0000FF]> [/color][color=#0000FF]input [/color][color=#FF0000]type[/color]="[color=#000080]file[/color]" აღნიშნავს რომ ,ეს არის ფაილის ამტვირთველი ელემენტი .[list]
[*]მეორე,ვაკეთებთ ფაილს სადაც მოხდება ინფორმაციის დამუშავება .
[/list]
გავაკეთოთ ფაილი [color=#000080]upload.php [/color]და ჩავწეროთ მასში შემდეგი კოდი :

[color=#000000][color=#FF0000][font=Arial, Helvetica, sans-serif]<?php[/font][/color]
[color=#007700] [/color][color=#FF8000]// ვამოწმებთ აიტვირთა თუ არა ფაილი
[/color][color=#007700]if([/color][color=#0000BB]is_uploaded_file[/color][color=#007700]([/color][color=#0000BB]$_FILES[/color][color=#007700][[/color][color=#DD0000]"my_file[/color][color=#DD0000][font=Arial, Helvetica, sans-serif]"[/font][/color][color=#007700][font=Arial, Helvetica, sans-serif]][[/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif]"tmp_name"[/font][/color][color=#007700][font=Arial, Helvetica, sans-serif]]))[/font][/color]
[color=#007700] {
[/color][color=#FF8000][font=Arial, Helvetica, sans-serif]//ცვლადში [/font][/color][color=#0000FF][font=Arial, Helvetica, sans-serif]$path [/font][/color][color=#FF8000] ვწერთ ლოკალურ დირექტორიას სადაც გვინდა რომ ფაილი აიტვირთოს[/color]

[color=#FF8000] [/color][color=#0000FF]$path[/color][color=#FF8000] = [/color][color=#808080][font=Arial, Helvetica, sans-serif]"/path/to/file/"[/font][/color][font=Arial, Helvetica, sans-serif];[/font]

[color=#FF8000] [/color][color=#0000BB]move_uploaded_file[/color][color=#007700]([/color][color=#0000BB]$_FILES[/color][color=#007700][[/color][color=#DD0000]"[/color][color=#DD0000][font=Arial, Helvetica, sans-serif]my_file[/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif]"[/font][/color][color=#007700][font=Arial, Helvetica, sans-serif]][[/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif]"tmp_name"[/font][/color][color=#007700][font=Arial, Helvetica, sans-serif]],[/font][/color][color=#0000FF]$path[/color][color=#007700] [/color][color=#007700].[/color][color=#0000BB]$_FILES[/color][color=#007700][[/color][color=#DD0000]"[/color][color=#DD0000]my_file[/color][color=#DD0000]"[/color][color=#007700]][[/color][color=#DD0000]"name"[/color][color=#007700]]);[/color]
[color=#007700] } else {
echo([/color][color=#DD0000]"ატვირთვისას მოხდა შეცდომა"[/color][color=#007700]);
}[/color]
[color=#FF0000]?> [/color][/color]

ეხლა განვიხილოთ კოდი:

[color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]is_uploaded_file($[/size][/font][/color]var[color=#0000BB]) [/color]ამოწმებს მიიღო თუ არა ფაილი სერვერმა თავიდან ბოლომდე,თუ კი აბრუნდებს true ს ,წინააღმდეგ შემთხვევაში false ს

[color=#0000BB]move_uploaded_file[/color][color=#007700]([/color][color=#0000BB]$tmpfile,$moveto[/color][color=#007700])- [/color][color=#000000]ეს ფუნქცია გადაადგილებს[/color][color=#007700] [/color][color=#0000BB]$tmpfile [/color][color=#007700]ფაილს [/color][color=#0000BB]$moveto ში .[/color]

[color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color]ამ მასივში ისმება ფაილი და მთელი ინფორმაცია მასზე .

დააკვირდით [color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]my_file [/size][/font][/color]არის HTML ფორმაში [color=#0000FF]<input [/color][color=#FF0000]type[/color]="[color=#000080]file[/color]"[color=#0000FF]> [/color]ფაილის სახელი.

მასივი [color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color]შეიცავს შემდეგ ინფორმაციას :
[list=1]
[*][color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]][/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"name[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] -[/size][/font][/color] ფაილის სახელი მაგ (banner.gif)
[*][color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]][/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"type[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]- [/size][/font][/color]ფაილის ტიპი მაგ (image/gif)
[*][color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]][/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"tmp_name[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]- [/size][/font][/color]ფაილის დროებითი(tmp) დირექტორია მაგ (c:\apache\php\tmp\phpDB.tmp)

[*][color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]][/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"error[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]- [/size][/font][/color]შეცდომის კოდი

[*][color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]][/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"size[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]- [/size][/font][/color]ფაილის ზომა
[/list]
[color=#0000BB][font=Arial, Helvetica, sans-serif][size=3]$_FILES[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"my_file[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]][/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3][[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"error[/size][/font][/color][color=#DD0000][font=Arial, Helvetica, sans-serif][size=3]"[/size][/font][/color][color=#007700][font=Arial, Helvetica, sans-serif][size=3]] [/size][/font][/color]შეიძლება შეიცავდეს 4 მნიშვნელობას :
0 - როცა შეცდომები არაა და ფაილი უპრიბლემოდ აიტვირთა სერვერზე

1 - როცა ფაილის ზომა აღემატება მაქსიმალურ ზომას,რომელიც მითითებულია php.ini კონფიგურაციებში

2 - ფაილის ზომა აღემატება HTML ფორმაში პარამეტრი MAX_FILE_SIZE ის მეშვეობით მითითებულ ლიმიტს

3 - ატვირთული ფაილი მიღებული იქნა ნაწილობრივ

4 - ფაილი არ აიტვირთა

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

თუ რაიმე კითხვა მაგვთ დაწერეთ კომენტარებში ,სტუმრები კი დარეგისრირდით :)
0

Share this post


Link to post
Share on other sites
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting