1. 26.
    +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
    ···
   tümünü göster