Koodla Dosya Yükleme Sınıfı
Suncuya dosya yüklemek pek çok zaman zor olabilir, beklenmeyen hatalar, işlerinizi istemediğiniz kadar uzatabilir.

Bunun önüne geçmek için Koodla Dosya Yükleme sınıfını yazdım. Sınıfın temel amacı sunucuya dosya yükleme işlemini olabildiğince basit ve sade bir hale getirmesi, bir hata oluşursa doğru şekilde bilgilendirmesi.
Bu amaçla yazdığım Dosya Yükleme Sınıfının temel özelliklerini şu şekilde sıralayabiliriz:
- Sunucuya yüklenecek dosya için min boyut kontrolü yapar.
- Suncuya yüklenecek dosya için max boyut kontrolü yapar.
- Suncuya yüklenecek dosyayı uzantı kontrolünden geçirir.
- Suncuya yüklenecek dosyanın ismini farklı alternatiflerle değiştirebilir.
- Yükleme sırasında oluşan hatayı yakalar ve bildirir.
Bunlarla beraber PHP4 – PHP 5 uyumludur.
Aslında bu sınıfın temel çıkış noktası, diğer sınıflarda olmayan bir özellik. Yükleme formunda gelecek dosyaya belirli bir isim vermek zorundasınızdır, daha sonra yükleme işlemleri bu isme göre yapılır. Ancak Koodla Yükleme Sınıfı bu ismi kendisi yakalar, işlemleri de buna göre yapar. Kullanım şekline bakarsak:
<h1>Yükleme Sınıfı Deneme Sayfası</h1> <?php if($_FILES) { include_once('yukleme.php'); $yukle = new yukleme($_FILES); $yukle->yuklenecekDizin('yuklenenler'); $yukle->minBoyut(10); $yukle->maxBoyut(1000); $yukle->isimDegistir(3,2); $yukle->uygunUzantilar(array('mov', 'txt')); if($yukle->yukle() == true) { echo 'işlem gerçekleştirildi...'; } else echo $yukle->hata; } else { ?> <form method="post" action="index.php" enctype="multipart/form-data"> <input name="dosya" type="file" /><br /> <input type="submit" value=" Yükle " /> </form> <?php } ?>
Yukarıdaki formda input name=’dosya’ olarak belirtilmiş, ancak nesneyi oluştururken bunu belirtmemize gerek yok, sınıf kendi içerisinde bunun tayinini yapabilmekte. Ya da bir başka deyişle input name=’dosyacik’ desek de işlem bundan etkilenmeyecek.
Sınıfın kullanım klavuzuna buradan erişebilirsiniz.
Sınıfı indirmek için burayı tıklayın.
- Ya da bu blogda yer alan bütün yazıları içindekiler sayfasında görüntüleyebilirsiniz. Tıklayın!
Koodla Dosya Yükleme Sınıfı yazısına 5 Yorum yapılmış.
görüşünü belirt
Arama
E-Posta Aboneliği
RSS Aboneliği
En Çok Yorumlanan Yazılar
- Ajax ile dinamik listeleme (22)
- Blogger’da “devamını oku” bağlantısı (21)
- MySQL’de Transaction ve PHP ile kullanımı (16)
- PHP ile sınırsız alt kategori mantığı (16)
- MySQL’de “join” kullanımı (13)
- Kullanıcı dostu url hazırlamak (12)
- PHP’nin (muhtemelen) az bilinen 10 özelliği (12)
- Kullandığınız programlama dili ne kadar popüler? (12)
- .htaccess konuları [Giriş] (11)
- Blogger’da arama kutusu ekleme (10)
Etiketler
Son Yorumlar
- Fatih: Açıkçası sitenizi yeni keşfettim ve gerçekten beğendim. Kaynak ve tutorial ihtiyacı olduğunda yabancı blog...
- beyo: emeğine sağlık, temiz bir anlatım olmuş
- gokhan: güzel bir anlatım yapmışsın.. devamını bekleriz.. kolay gelsin
- web yazılım şirketi: google blog araması ile .net üzerinden hizmet veren web yazılım şirketi ararken tesadüfen bu web...
- Codderol: çok teşekkürler bu çalışma bana çok yardımcı oldu….
02 / Mayıs / 2009
Burada move_uploaded_file fonsksiyonu kullanılmış.Bu kullanım şekli sizce ftp için zararlı bir yöntem değilmi.Çünkü dosya iznini 777 vermemiz gerekiyor.
Dosya erişim haklarında chmod 0777 tanımlaması dosya yükleme için zorunlu bir durumdur. Ancak dosyanın erişim hakkının 0777 olması, yine de o dosyaynın herkes tarafından yazılabileceği anlamına gelmez. Apache sunucusunda gerekli ayarlar yapılırsa chmod 0777nin ortaya çıkarabileceği potansiyel tehditlerin de önüne geçilmiş olur.
Apache sunucusundaki gerekli ayarlamalar derken hangi dosyalarda değişiklik yapabiliriz?
Gerekli ayarlar derken tabii ki sistem yöneticisinin yapabileceği ayarları kastetmiştim.
Virtual host tanımlaması yapılıken aynı sunucuda bulunan kullanıcıların farklı kullanıcının dosyalarını açmalarını engelleyebiliriz. ve ayrıca 777 olan klasör içerisine sadece belirli dosyaların saklanmasını .htaccess dosyası ile sağlayabiliriz. böylece zararlı kod veya shell scriptlerinin o dizinde çalışmasını engelleyebiliriz.
Tabi bunlar conf dosyasına müdahele edilerek de yapılabilir.
Bilgilendirmeleriniz için teşekkürler…