Php Dosya Yükleme Sınıfı Kullanımı (Verot.net)

php-dosya-yukleme-sinifi

Verot.net php dosya yükleme sınıfı php programlamada dosya yükleme işlemlerini oldukça kolaylaştıran bir sınıftır. Eğer kendi fonksiyonunuzu ya da sınıfınızı yazmakla uğraşmak istemiyorsanız eski ama etkili olan verot.net php dosya yükleme sınıfını tavsiye ederim. Kullanımı ücretsizdir. 

Verot.net php dosya yükleme sınıfı ile birçok işlemi yapmak mümkündür. Örnek vermek gerekirse bir fotoğraf yüklenirken eğer fotoğraf belirttiğimiz boyutlardan büyük ya da küçük ise fotoğrafı yeniden boyutlandırabiliriz. Fotoğrafın renkleri üzerinde oynama yapabiliriz.

Fotoğraftan örnek verdim diye bu sınıf ile sadece fotoğraf yükleyebildiğimiz anlamına gelmez. Verot.net php dosya yükleme sınıfı MIME tiplerini desteklediği için MIME tipini bildiğimiz her dosyayı yükleyebiliriz.

Mime tip listesi için tıklayın.

Php Dosya Yükleme Sınıfı Kullanımı 

İlk önce yapmamız gereken verot.net php dosya yükleme sınıfını indirmemiz.

İndirmek için tıklayın.

Herhangi bir isimde bir php dosyası(index.php, yukle.php vs.) oluşturalım ve indirdiğimiz dosya yükleme sınıfını projenize include() ya da require() ile dahil edebilirsiniz.

<?php 
include "class.upload.php";
/* ya da */
require "class.upload.php";
?>

Php dosya yükleme sınıfını projemize dahil ettikten sonra yükleme işlemini gerçekleştirmek için bir form oluşturalım. Daha önceki yazılarda formları oluştururken Bootstrap CSS kütüphanesini kullanacağımı belirtmiştim. Bu nedenle isterseniz sizde denemek için Bootstrap kütüphanesini indirebilirsiniz.

Oluşturduğumuz php dosyasında html yapımızı oluşturuyoruz.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css" >
    <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
</head>
<body>
<div class="container mt-5">
    <h4>Verot.net Php Dosya Yükleme Sınıfı</h4>
    <form action="" method="post" enctype="multipart/form-data">
        <div class="custom-file">
            <input type="file" class="custom-file-input" name="dosya">
            <label class="custom-file-label">Dosya Seçin</label>
        </div>
        <button type="submit" class="btn btn-primary mt-2">Yükle</button>
    </form>
</div>
</body>
</html>

Html yapımızı ve formu oluşturduktan sonra yükleme işlemlerini gerçekleştirmek için php kodlarımızı yazmaya başlayabiliriz.

if($_FILES["dosya"]["name"]){
    $dosya = new upload($_FILES["dosya"]);

    if($dosya->uploaded){
        $dosya -> file_new_name_body = "yeni_isim";
        $dosya -> image_resize = true;
        $dosya -> image_x = 200;
        $dosya -> image_y = 200;

        $dosya-> allowed = array("image/jpeg", "image/png");

        $dosya -> process('./upload');
        if($dosya ->processed){
            echo "dosya yüklendi";
        }else{
            echo "dosya yüklenmedi.";
        }
    }
}

Yukarıdaki örnek kodda formdan gelen JPEG ya da PNG formatındaki resim dosyasını yeniden boyutlandırarak ve yeniden isimlendirerek upload dizinine yüklenmesi gerçekleştirilmiştir.

Sınıfımızdan bir dosya nesnesi üretiyoruz.

$dosya = new upload($_FILES["dosya"]);

Eğer karşıya yükleme işlemi başarılı ise koşul ifademizin içerisinde yükleme işlemi ile ilgili kontrolleri gerçekleştiriyoruz.

if($dosya->uploaded){
/* Yükleme işlemi ile ilgili kontroller burada sağlanacaktır. */
}
/*
Yüklenecek dosyayı yeniden isimlendiriyoruz. 
Burada rastgele isim üretip atama yapmak mümkündür ya da yeni isim belirtmeden yükleme yapmak mümkündür.
Aynı isimde iki dosya yüklendiğinde otomatik olarak numaralandırılır.
*/
$dosya -> file_new_name_body = "yeni_isim";
/* Burada resmimizi yeniden boyutlandırıcağımızı belirtiyoruz. */
$dosya -> image_resize = true;
/* Resmimizi x ekseni 200px olacak şekilde boyutlandırıyoruz.*/
$dosya -> image_x = 200;
/* Resmimizi y ekseni 200px olacak şekilde boyutlandırıyoruz.*/
$dosya -> image_y = 200;
/* Yükleme işleminde izin vereceğimiz uzantıları belirtiyoruz. */
$dosya-> allowed = array("image/jpeg", "image/png");
/* Yükleme dizinini belirtiyoruz. */
$dosya -> process('./upload');

Php Dosya Yükleme Sınıfının Bazı Fonksiyonları

Dosyayı Yeniden Adlandırma

Yüklenecek olan dosyayı yeniden adlandırmak için kullanılır. Fonksiyon ile rastgele isim oluşturulup atama yapılabilir. Belirtilmediği taktirde dosya mevcut ismi ile yüklenir. Aynı dosya tekrar yüklenirse otomatik numaralandırılarak isimlendirilir.

$dosya->file_new_name_body = 'yeni_isim';

Dosya Uzantısını Değiştirme

Yükleme sırasında dosya uzantısını değiştirmek için kullanılır.

$dosya->file_new_name_ext = 'png';

Yüklenecek Dosya Uzantılarını Belirleme

Sadece belirttiğimiz uzantıdaki dosyaların yüklemesi için kullanılır. Dosya uzantıları MIME tipleri olarak dizi şeklinde gönderilir.

Mime tip listesi için tıklayın.

Sadece pdf uzantısına izin verilmiştir.

$dosya->allowed = array('application/pdf');

Tüm resim uzantılarına izin verilmiştir.

$dosya->allowed = array('image/*');

Sadece PNG vs JPEG uzantılarına izin verilmiştir.

$dosya->allowed = array('image/png', 'image/jpeg');

Maksimum Dosya Boyutunu Belirleme

Yüklenecek dosyanın maksimum boyutunu belirlemek için kullanılır. Boyut byte cinsinden hesaplanır. 1MB boyut belirtmek için 1024*1024 yazılabilir. Bu işlem bize 1048576 byte sonucunu yani 1 MB‘yi verir. 

En fazla 1MB boyutundaki dosyalara izin verilir.

$dosya-> file_max_size = 1024 * 1024;

En fazla 5MB boyutundaki dosyalara izin verilir.

$dosya-> file_max_size = 1024 * 1024 * 5;

Resmi Yeniden Boyutlandırma

Yeniden boyutlandırma işlemin önce yeniden boyutlandırma yapacağımızı belirlememiz gerekiyor.

$dosya->image_resize = true;

Yeniden boyutlandırma yapacağımızı belirttikten sonra genişlik ve yükseklik değerlerini değiştirebiliriz.

$dosya->image_x = 200; // Genişlik 200px.
$dosya->image_y = 200; // Yükseklik 200px.

Yüklenecek Dosyanın Bilgilerine Erişme

process() işleminden önce yüklenecek dosyanın bilgilerine erişmek için kullanılan fonksiyonlar.

Dosya adını verir.

echo $dosya->file_src_name;

Dosya uzantısını verir.

echo $dosya->file_src_name_ext;

Dosya adını uzantısız verir.

echo $dosya->file_src_name_body;

Dosyanın yüklendiği geçici yolu verir.

echo $dosya->file_src_pathname;

Dosyanın MIME tipini verir.

echo $dosya->file_src_mime;

Byte cinsinden dosya boyunu verir.

echo  $dosya -> file_src_size;

Megabayt’a çevirmek için basit bölme ve yuvarlama işlemleri yapılabilir.

$mb = round($dosya->file_src_size / 1024 / 1024, 2);
echo $mb;

Yükleme hatasını verir.

echo dosya->file_src_error;

Yüklenen Dosyanın Bilgilerine Erişme

process() işleminden sonra yüklenen dosyanın bilgilerine erişmek için kullanılan fonksiyonlar.

Dosyanın yükleneceği klasör adını verir.

echo $dosya->file_dst_path;

Yüklenen dosyanın uzantısız adını verir.

echo $dosya->file_dst_name_body;

Yüklenen dosyanın uzantısını verir.

echo $dosya->file_dst_name_ext;

Yüklenen dosyanın tam adını verir.

echo $dosya->file_dst_name;

Yüklenen dosyanın konumu ve tam adını verir.

echo $dosya->file_dst_pathname;

Daha fazla ayrıntı için verot GitHub sayfasını ziyaret edebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir