+3
Alın lan son yazdığım dosya yükleme sınıfını sizinle paylaşayım ilk. henüz geliştirilme aşamasındadır, fakat çalışır haldedir.
3.
################################################
Dosya yükleme sınıfı - donanimi guvenle kaldirdim
4.
################################################
<?php
class file_upload
{
var $file;
var $file_name;
var $file_new_name;
var $file_size;
var $file_type;
var $error_message;
public $fix_chars = true;
public $max_file_size = 10485760;
public $upload_directory = "uploads/";
public $file_permissions = 777;
public $allowed_extensions = array("mp3","wma","wav","flac","ogg","mp4","png","gif","jpg","jpeg","bmp","txt","pdf","odt","doc","docx","rtf");
function __construct($key)
{
$this->file = $_files[$key];
$this->file_name = $this->file["name"];
$this->file_tmp = $this->file["tmp_name"];
$this->file_size = $this->file["size"];
$info = pathinfo($this->file_name);
$this->file_type = $info["extension"];
$this->file_org_name = $info["filename"];
}
public function upload()
{
if(!$this->extension_check())
return false;
if(!$this->size_check())
return false;
if(!$this->directory_check())
return false;
if(!$this->permission_check())
return false;
if($this->fix_chars == true)
{
if($this->file_new_name != "")
$this->file_org_name = $this->file_new_name;
$this->file_name = $this->file_rename($this->file_org_name).".".$this->file_type;
}
if (@move_uploaded_file($this->file_tmp, $this->upload_directory. $this->file_name))
return $this->file_name;
else
{
$this->set_error(5);
return false;
}
}
private function is_file_uploaded()
{
}
private function file_rename($text)
{
$text = trim($text);
$keys = array('ç','ç','ğ','ğ','ı','i̇','ö','ö','ş','ş','ü' ,'ü','é',',','_',' ','.','!','+','%','&','/','(',')','[',']','{','}','*','?','$','#','\','>','<','=',''','"',':','@','€','´','^');
$to = array('c','c','g','g','i','i','o','o','s','s','u','u','e','-','-','-',,,,,,,,,,,,,,,,,,,,,,,'"',,,,,'');
$text = str_replace($keys,$to, $text);
return strtolower($text);
}
private function extension_check()
{
if(in_array($this->file_type, $this->allowed_extensions))
return true;
else
{
$this->set_error(1);
return false;
}
}
private function size_check()
{
if($this->max_file_size > $this->file_size)
return true;
else
{
$this->set_error(2);
return false;
}
}
private function directory_check()
{
if(is_dir($this->upload_directory))
return true;
else
{
$this->set_error(3);
return false;
}
}
private function permission_check()
{
if(is_writable($this->upload_directory))
return true;
else
{
$this->set_error(4);
return false;
}
}
private function set_error($error_code)
{
switch ($error_code)
{
case 1:
$msg = 'kabul edilmeyen dosya türü.';
break;
case 2:
$msg = 'dosya boyutu izin verilenden fazla. i̇zin verilen dosya boyutu ' . $this->max_file_size . " byte - " . $this->file_size;
break;
case 3:
$msg = 'dizin bulunamadı.';
break;
case 4:
$msg = 'dizine yazım izni yok.';
break;
case 5:
$msg = 'dosya yüklenemedi!';
break;
default:
$msg = 'bilinmeyen hata.';
}
$this->error_message = $msg;
}
public function get_error()
{
return $this->error_message;
}
}
?>
Tümünü Göster