Потребител Парола | Регистрация | Забравена парола
Меню
· Начало
· Файлове
· Форум
· Връзки
· Категории на уроците
· За контакти
· Фото галерия
· Търсене
Кажи на приятел

Вашия email:
email на приятел:
Копие за вас?
Реклама

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

PHP & MySQLПричината, класа да се справя блестящо с ъплоуда на файлове, е че съществуват тонове функции, които някой може да напише, като всичките са взаимнозависими от изходния резултат който предлагат, преди финалния резултат да бъде определен.

Какво е class и защо се нуждая от него?

Казано просто class-а е серия от функции, които работят ръка за ръка, за създаването на изходен резултат. Причината, класа да се справя блестящо с ъплоуда на файлове, е че съществуват тонове функции, които някой може да напише, като всичките са взаимно зависими от изходния резултат, който предлагат преди финалния резултат да бъде определен. Поради тази причина пишем клас вместо 10 функции.

Друга красота на класа е, че можете да извикате всяка от характеристиките (свойствата) вътре в класа,. Примерно, с този class, ще има 'x' броя функции, всички играещи своята роля в изходния резултат от процеса на upload . Ако желаете да използвате класа само за да проверите размера на файла, без да upload-вате на сървъра. Ако желаете само да получите файловото разширение и да го потвърдите, то се оказва, че и това може.

Преди да напишем клас, или каквото и да е, трябва да планираме. Нека да премислим, от какво се нуждаем за да направим class-а ефективен. Ще се нуждаем от аранжиране на функции, всички проверяващи (потвърждаващи) някакъв сорт процеси, смесващи тези процеси, общуващи помежду си. Да направим стъпка напред и да разгледаме, какви индивидуални функции ще напишем днес.

Проверяване на файлово разширение
Проверяване на размера на файла
Намиране размера на файла
Намиране на максимално допустимия размер на файла
Проверяване на потребителските ъплоудвани файлове
Проверка за съществуване на файл
Определяне на upload директорията
Определяне на upload log директория
Upload процес със и без проверка

Ако все още се питате, защо се нуждаете от class, отговорът е прост. Някога писали ли сте огромен код, в който всичко е взаимно свързано, с идеята да се изпълни някакъв изходен резултат? Разбира се, че сте писали и знаете в какъв досаден, къртовски труд може да се превърне това. Когато за първи път пишете клас, това си е доста трудоемко и време отнемащо, но след това никога няма да Ви се наложи да го пишете отново. Просто го извиквате и останалото е история. Classes заедно с functions, ще направят живота Ви по-лек. След казаното до тук, нека да започнем.
<?php
class Upload_Files {

var $temp_file_name;
var $file_name;
var $upload_dir;
var $upload_log_dir;
var $max_file_size;
var $banned_array;
var $ext_array;
?>

Горният отрязък от код е началото на класа. Трябва да стартирате всички класове с думата 'class'. Директно след думата 'class' е името на класа. Можете да го кръстите, както Ви харесва, но за това упражнение, ще го кръстим 'Upload_Class'. Следваща името на класа е отварящата скоба за класа. Тя казва на PHP - "Хей класа ми започва, действай".

Веднага под началото на класа, трябва да декларираме нашите променливи за този клас. Основно това са променливите, които могат да бъдат включени извън class-а, от крайния потребител. Точно както функциите (functions) могат да приемат аргументи, така могат и класовете, но с малко различен синтаксис. Тези класове казват на класа, че тези променливи могат да бъдат дефинирани от потребителя. Променливите, използвани от класа, трябва първо да бъдат дефинирани като 'var $variable_name'.

Function #1 (Проверка на файловото разширение)

<?php
function validate_extension() {
//SECTION #1
$file_name = trim($this->file_name);
$extension = strtolower(strrchr($file_name,"."));
$ext_array = $this->ext_array;
$ext_count = count($ext_array);

//SECTION #2
if (!$file_name) {
return false;
} else {
if (!$ext_array) {
return true;
} else {
foreach ($ext_array as $value) {
$first_char = substr($value,0,1);
if ($first_char <> ".") {
$extensions[] = ".".strtolower($value);
} else {
$extensions[] = strtolower($value);
}
}

//SECTION #3
foreach ($extensions as $value) {
if ($value == $extension) {
$valid_extension = "TRUE";
}
}

//SECTION #4
if ($valid_extension) {
return true;
} else {
return false;
}}}}
?>

Тази първа функция, ще провери дали файловото разширение е валидно. Как става това? Да хвърлим по един поглед на всяка секция от кода, за да открием как. За да използувате тази функция, трябва да включите и двете: името на файла и един масив с допустимите разширения. Ако желаете да приемете всички файлови разширения, не се нуждаете да изпращате масив за разширенията. В края на този урок, ще проследим как да извикаме целия class и всяка функция в class-а, но засега проучваме class-а, за да имаме ясна представа от това мощно средство.

<?php
//SECTION #1
$file_name = trim($this->file_name);
$extension = strtolower(strrchr($file_name,"."));
$ext_array = $this->ext_array;
$ext_count = count($ext_array);
?>
· ko6rata на March 10 2011 15:44:11 · 0 Коментари · 4090 Прочитания · Отпечатай
Коментари
Няма добавени коментари.
Напиши коментар
Моля влезте, за да коментирате.
Оценка
Рейтингите са достъпни само за регистрирани.

Моля влезте или се регистрирайте за да гласувате.

Няма оценки.
Вход
Потребител

Парола



Не сте регистрирани?
Натиснете тук за регистрация.

Забравена парола?
Натиснете тук за нова.
Анкета
С каква операционна система работите











Трябва да влезете за да гласувате.
ЧАТ
Трябва да влезате за да пуснете съобщение.

Няма съобщения.
Статистика