upload etme
Web sitesi hazırlarken upload işlemlerinde gerekli önlemleri almazsak daha sonra istenmeyen sonuçlarla karşılaşabiliriz. Örneğin kötü niyetli birisi "hack.php" gibi bir dosyayı yükleyip çalıştırırsa web sitemizi hack edebilir. Veyahut geçerli bir resim dosyası olmadığı halde "resim.gif" gibi bir dosyayı yükleyebilir. Buna benzer problemlerin önüne geçmek için PHP diliyle bir upload sınıfı hazırladım.Sınıfın en önemli özellikleri
- Belirttiğiniz dosya türleri dışında dosyaların yüklenmesine izin vermez
- Yüklenen dosyalarda "resim" dosyaları varsa, her birinin gerçekten bir resim dosyası olup olmadığını otomatik olarak kontrol eder.
- Yüklenecek dosyaları istediğiniz klasöre kaydedebilirsiniz. Klasör yoksa sizin yerinize oluşturmayı dener ve "chmod" ayarını yapmaya çalışır.
- Aynı anda kaç adet dosyanın yükleneceğini ayarlayabilirsiniz. Örneğin; tek bir yükleme işleminde en az 5, en fazla 15 dosya yüklenebilsin gibi...
- Yüklenen dosyaların boyutlarını sınırlandırabilirsiniz. Örneğin; yüklenmek istenen herbir dosyanın boyutu en az 10, en fazla 100 KB olsun gibi...
- Yüklenen dosyaları yeniden isimlendirebilirsiniz. Ayrıca yüklenen her bir dosya için benzersiz isimler de oluşturabilirsiniz.
- Dosya isimlerinin başına veya sonuna bir ifade ekleyebilirsiniz.
- Bütün kotroller sunucunun "geçiçi" klasöründe yapılır. Herhangi bir sorun oluşmazsa, dosyaları istediğiniz klasöre taşıyabilirsiniz.
Sınıfın kullanımı
İlk önce upload işleminin yapılabilmesi için bir upload formu hazırlamamız gerekiyor. Alttaki kodlarla basit bir upload formu oluşturabiliriz.
Yukarıdaki kodların ekran görüntüsü aşağıdaki resimdeki gibi görünecektir.
Bu upload formunu işlemek için eburhan Upload class'ı şöyle kullanabilirsiniz.
-
<?php
-
// sınıfı çağır
-
require_once('eb.upload.php');
-
-
// yüklenecek dosyalar varsa devreye gir
-
if( $_FILES )
-
{
-
// sınıfı hazırla
-
$up = new UPLOAD( $_FILES['dosyalar']);
-
-
-
// yüklenecek dosyalar hangi klasöre kayıt edilecek
-
$up->yolDizin('./upload');
-
-
// 100 KB'a kadar olanlara izin ver
-
$up->maxBoyut(100);
-
-
// izin verilecek dosya türleri
-
$up->tipKabul('gif,jpg,png');
-
-
-
// yükleme işlemini başlat
-
if( $up->baslat() === FALSE ) {
-
} else {
-
echo 'Dosyalar başarıyla yüklendi';
-
}
-
-
}
-
?>
Yukarıdaki kodda yüklenmek istenen dosyaların upload isimli klasöre kaydedilmesini sağlıyoruz. Daha sonra herbir dosya boyutunun en fazla 100 KB olabileceğini ve sonra yüklenmek istenen dosyaların gif, jpg, png formatlarında olabileceğini belirtiyoruz.
Sonuç...
Hazırlamış olduğum eburhan Upload class sınıfının yetenekleri burada anlattığımla sınırlı değil. Daha fazla bilgi almak isteseniz alttaki bağlantıdan bu sınıfı indirebilirsiniz. İndireceğiniz dosya içerisinde ayrıntılı bir dökümantasyon mevcut. Bu dokümantasyon, sınıf hakkında merak ettiklerinize büyük bir ihtimal cevap verecektir. Yine de sormak istedikleriniz olursa bana istediğiniz zaman ulaşabilirsiniz