Bir çoğumuz uygulamalarımızda dosya uplaodı illaki kullanmışızdır. Özellikle de resimlerle ilgili uploadlar olduğunda zaman zaman resize, watermark ve crop gibi işlemler için bir sürü site dolaşmışızdır ya da zamanla artık kendi sınıflarımızı yazıp hali hazır uygulamalarda onları kullanmışızdır. Ben de geçenlerde keşfettiğim bir sınıfı sizle paylaşmak istedim. Colin Verot ‘un yazmış olduğu dosya upload sınıfından bahsedeceğim.
Bu sınıf sadece resimlere yönelik bir upload sınıfı ve desteklediği formatlarda PNG,JPG,GIF ve BMP dir. Bunlar üzerinde türlü türlü işlemleri kolayca yapabilir ve uygulamalarınıza kolayca dahil edebilirsiniz.
Gelin şimdi bir örnekle açıklayalım.. Örneğimizde bir resmi kesip biçelim, watermark ve üstüne bir de yazı yazalım.
Öncelikle upload işlemi için formumuzu oluşturalım:
Şimdi ise upload işlemini yapacağımız dosyayı oluşturalım:
< ?php
# Upload Sınıfımızı Dahil Ediyoruz
include_once('class.upload.php');
# Sınıfımızı Başlatıyoruz.
$upload = new upload($_FILES['image_field']);
# Dosya Yüklenmiş mi ?
if ($upload->uploaded)
{
$upload->file_auto_rename = true;
$upload->image_resize = true;
$upload->image_x = 500;
$upload->image_ratio_y = true;
$upload->image_text = 'ysfkc.com';
$upload->image_text_color = '#ffffff';
$upload->image_watermark = 'watermark.png';
$upload->process('upload');
if ($upload->processed)
{
echo 'Resim Yüklendi ve İstenilen İşlemler Uygulandı.';
echo ''.$upload->file_dst_name.'';
$upload->clean();
}
else
{
echo 'Resim Yüklenemedi: '.$upload->error;
}
}
?>
Upload dosyamızda neler yaptığımıza kısaca bir göz atalım isterseniz.
- İlk satırımızda upload için kullanacağımız upload sınıfımızı dahil ediyoruz.
- Diğer satırımızda ise upload sınıfı başlatırken formdan gelen image kutucuğumuzun ismini belirtiyoruz. Yani sınıfta __construct() (yapılandırıc metot) uygulanmış ve bizden işlem yapacağı image kutucuğunun ismini vermemizi istiyor.
- Daha sonra if koşulumuz ile dosyanın yüklenip yüklenmediğini kontrol ediyoruz. Eğer dosyamız başarıyla yüklendiyse $upload->uploaded değişkenimiz true ( doğru ) olarak dönmekte eğer yüklenmemişse false ( yanlış ) olarak dönmekte.
- Sonraki satırımızda ise dosyamıza otomatik olarak bir isim verilmesini $uplolad->file_auto_rename özelliğini true yaparak sağlıyoruz.
- Ardından resmimizi resize yapacağımız için $upload->image_resize özelliğimizi de true yaparak aktif ediyoruz.
- Daha sonra resmimizin genişliğini 500 px olarak belirliyoruz $upload->image_x ile.
$upload->image_ratio_y parametresini true yaparak yüksekliği kendisi otomatik olarak almasını sağlıyoruz. Böylelikle resmin bozulmasını da engellemiş oluyoruz. - Daha sonra yüklenen resmimize $upl0ad->image_text ile üzerine yazılmasını istediğimiz yazıyı belirtiyoruz.
- $upload->image_text_color ile de üzerine yazılacak yazının rengini ayarlıyoruz.
- $upload->image_watermark ile de resmimizin üzerine hangi resmi birleştirmek istiyorsak onu belirtiyoruz.
- Daha sonra $upload->process() metodu ile de resmimizin hangi dizine yükleneceğini belirliyoruz.
- Ardından yine bir if koşulu ile resmin istediğimiz dizine taşınıp taşınmadığını kontrol ediyoruz eğer resmimiz tüm işlemler yapılıp taşındıysa ekrana resim yüklendi diye yazdırıyoruz yok eğer problem oluştuysa else kısmında hata mesajını yazdıryoruz.
Evet umarım birilerinin işine yarar Örneğimizi buradan indirebilirsiniz. Ve upload sınıfı ile ilgili diğer tonla özellik için de buraya tıklayarak göz atabilirsiniz.
