Помогни ни да направим Uroci.net по - богат! Добави урок

Написване на клас за File Upload

PHP » PHP
nma   трудност:    видян: 13780



$existing_file = Връща "true" ако файл с такова има вече съществува, "false" ако не.
$valid_user = Проверява дали такъв потребител съществува.
$valid_size = За проверка дали размера на файла е валиден.
$valid_ext = Извиква validate_extension() за да провери дали разширението на файла е от позволените.
Тези (4) реда са необходими, така че можем да валидираме дали да допуснем файла за upload. Друг добавен ред от кода е в Section #2 и е показан долу.

<?php
elseif ((((!$valid_user) OR (!$valid_size) OR (!$valid_ext) OR ($existing_file)))) {
return false;
?>


Това са нашите основни стъпки от процеса за проверка. If проверява дали потребителя е реален, размера на файла е валиден, разширението на файла е валидно и дали файла вече съществува на сървъра. Ако всички проверки са верни, се преминава към същия процес описан преди за upload на файл и запис на нов ред в log файла за тази дата. Сега всичко, което трябва да направим е да извикаме class-а.

------------------
Извикване на Class-а

Включването на класа във Вашия файл става с include() функцията. Долу е процеса на извикване на class-а.

<?php
//SECTION #1
$upload_class = new Upload_Files;
$upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']);
$upload_class->file_name = trim(strtolower($_FILES['upload']['name']));
$upload_class->upload_dir = "uploads/";
$upload_class->upload_log_dir = "uploads/upload_logs/";
$upload_class->max_file_size = 524288;
$upload_class->banned_array = array("");
$upload_class->ext_array = array(".jpg",".gif",".jpeg",".png");

//SECTION #2
$valid_ext = $upload_class->validate_extension();
$valid_size = $upload_class->validate_size();
$valid_user = $upload_class->validate_user();
$max_size = $upload_class->get_max_size();
$file_size = $upload_class->get_file_size();
$upload_directory = $upload_class->get_upload_directory();
$upload_log_directory = $upload_class->get_upload_log_directory();
$upload_file = $upload_class->upload_file_with_validation();
?>


Section #1
В първа секция, трябва да стартираме class-а и да дефинираме нашите class променливи. Когато стартирате ново копие на class-а, трябва да зададете променлива за класа. В този случай нашата основна променлива е $upload_class, и тогава стартираме класа. Напишете нов за да може PHP да разбере, че стартирате нов class и се обърнете към името на класа. След това трябва да дефинираме всички променливи за нашия class. За дефиниране на променливите, трябва да стартираме нашата $upload_class. Трябва да оставите PHP да разбере, че вашето желание е тази променлива да бъде изпратена на class-а. Припомнете си, в самото начало на class-а, променливите които бяха дефинирани. Е сега ще ги активираме. Да направим бърз преглед на всяка променлива.

$upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']); [set the temp file name]
$upload_class->file_name = trim(strtolower($_FILES['upload']['name'])); [set the actual file name]
$upload_class->upload_dir = "uploads/"; [set the upload directory]
$upload_class->upload_log_dir = "uploads/upload_logs/"; [set the upload log directory]
$upload_class->max_file_size = 524288; [set the max file size - .5MB or 512KB]
$upload_class->banned_array = array(""); [set the banned users array]
$upload_class->ext_array = array(".jpg",".gif",".jpeg",".png"); [set the acceptable file extensions]
Не е нужно да дефинирате всяка променлива, ако не планирате да използувате проверяващи скриптове. Ако ще правите само upload, се нуждаете само от първите (4) променливи, вместо от всичките (7). Още помнете, че ако нямате списък със забранени потребители, няма нужда да дефинирате такъв и ако ще приемате всички файлови разширения, няма нужда от такава променлива.


<?php
//SECTION #2
$valid_ext = $upload_class->validate_extension();
$valid_size = $upload_class->validate_size();
$valid_user = $upload_class->validate_user();
$max_size = $upload_class->get_max_size();
$file_size = $upload_class->get_file_size();
$upload_directory = $upload_class->get_upload_directory();
$upload_log_directory = $upload_class->get_upload_log_directory();
$upload_file = $upload_class->upload_file_with_validation();
?>


Section #2
Втората секция извиква всички функции в class-а. Няма нужда да се извикват всички функции, но показваме, че бихте могли да го направите. Добра причина за извикване на всички функции е че бихте могли да заредите системата за връщане на отговорите. В този ред на мисли бихте могли да кажете if !$valid_ext и да върнете съобщение за грешка на потребителя уведомяващо го, че файловото разширение е некоректно. Можете да извикате само $file_size и да върнете числото на потребителя. Единствената функция, която Ви е необходима за upload е последния ред стартиращ с $upload_file. Ако извиквате функцията с проверка, използувайте последния ред горе, иначе без да използвате долния.

<?php
$upload_file = $upload_class->upload_file_with_no_validation();
?>





Страници: «3 4 5 6

Сподели урока:



Коментари (1)

yahoo на 24.02 2007 в 14:28ч.
Когато upload-вам файл в името на който има единична кавичка ' името се отрязва до кавичката. Самата $_FILES['upload']['name'] е отрязана и не мога да и приложа str_replace някакви идеи?

Регистрирайте се, за да добавите коментар


Калдейта Ком ЕООД - © 2003-. Всички права запазени.
Препоръчваме: IT Новини