class Upload {
// Име на файла var $name;
// MIME тип на файла var $type;
// Големина на файла в Bytes
var $size;
// Резултат, като начало false
var $ok = false;
// Място, където желаете да копирате файла var $direrctory;
// Конструктор на класа
// Определяне на мястото, където желаете да копирате файла function Upload($path)
{ $this->directory = $path; }
function LoadImage($file)
{
// променливата $this->name приема името на файла $this->name = $_FILES['file']['name'];
// променливата $this->type приема MIME типа на файла $this->type = $_FILES['file']['type'];
// променливата $this->size приема големината на файла в Bytes $this->size = $_FILES['file']['size'];
// Проверка, дали файлът съдържа едно от разширенията if(eregi("(jpg|gif|txt|csv|html)$", $this->name))
{ if(($this->size < 100000) && ($this->size!=0))
{
// Копиране на файла в избраната от Вас директория copy($file,$this->directory . $this->name);
// променливата $this->ok приема стойност true $this->ok = true; } else {
// променливата $this->ok приема стойност false $this->ok = false; }
} else {
// променливата $this->ok приема стойност false $this->ok = false; }
// връщане на променливата $this->ok return $this->ok;
}
// Дава името на файла function get_name()
{ return $this->name; }
// Дава типа на файла function get_type()
{ return $this->type; }
// Дава големината на файла function get_size()
{ return $this->size; }
}
?>
Използватето на този клас е следното:
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?PHP if(is_uploaded_file($HTTP_POST_FILES['file']['tmp_name']))
{ require('Upload.php'); $up = new Upload("images/"); $up->LoadImage($file);
Николай Николов се занимава с програмиране на PHP/MySQL повече от 6 години. Заедно с разработката на уеб приложения на PHP, се занимава с Java, XML и Webservices.
1 посетител чете този урок (0 потребители и 1 гост)
Активни потребители:
---
има няколко неща в класа, които не ми харесват: защо тая проверка if(is_uploaded_file($HTTP_POST_FILES['file']['tmp_name'])) не я направиш вътре в самия клас?
и най-същественото:
// Копиране на файла в избраната от Вас директория
copy($file,$this->directory . $this->name);
// променливата $this->ok приема стойност true
$this->ok = true;
ако директорията не е writable, лошо..
също и проверката за файлови разширения не е добре, това трябва да мога да си го задам при инициализирането на класа,
а какво ще върне проверката ако файла ми е с такова име: txt_ddimitrov.php?...
заключение: класа е много зле от към защита, да не се ползва