Php Sunucuya Kolay Dosya Yükleme

php ile sunucuya dosya yüklemek aslında kolay olsada, dosyanın sunucuya yüklenirken yeniden boyutlandırılması ve resim dosyalası yerine sunucuya tehlike oluşturacak dosyaların yüklenmesini önlemek zahmetli bir süreç.

bu konuda imdadımıza verot.net tarafından hazırlanmış class.upload yetişiyor. class.upload bizim yerimize resim dosyalarını boyutlandırıp, dosyanın gerçekten resim olup olmadığını kontrol edebiliyor. bu özelliklerinin yanında class.upload ın türkçe çevirisi mevcut. böylece hata uyarılarını türkçe olarak görebiliyoruz.

hazırlamış olduğumuz örnekte dosya sunucya hem 160px genişliğinde hemde 640px genişliğinde yüklenecek. eğer yükleyeceğimiz dosyanın sadece büyük haline ihtiyacımız varsa $h2 ile başlayan satırları ve $foldersmall ile başlayan satırı silerek oluşturduğumuz sistemin sadece büyük dosyanın yüklenmesini sağlayabiliriz.

class.upload kullanımı için  örnek kodlarımız;

 

$h1 = new Upload($_FILES['file'],'tr_TR');
$h1->file_safe_name             = true; //dosya isminde sistemine uygun olmayan karakterler silinir
$h1->image_resize               = true; //resmi boyutlandır
$h1->image_ratio_y              = true; //resim boyutlarının ortalamasını al
$h1->image_x                    = 640; //resim genişliği px cinsinden
$h1->image_ratio_fill           = true; //eğer resim verilen değerlere uymuyorsa, kalan kısmı beyaz renk ile doldur
$h1->image_convert              = 'jpg'; //resmi jpg formatına dönüştür
$h1->allowed                    = array('image/*'); //sadece resim dosyalarını kabul et
$h1->forbidden                  = array('application/*'); //hiçbir uygulama dosyasını kabul etme
$h1->file_overwrite             = true; //eğer aynı add resim varsa üstüne yaz
$h1->file_new_name_body         = $rand; //yeni dosya ismi ... örneğimizde otomatik olarak rakamsal bir değerin oluşmasını sağladık.
$h1->Process($folderbig); //dosyanın kaydedileceği klasör

örneğin çalışan versiyonunu buradan inceleyebilirsiniz. örnek çalışmanın kodlarının tamamını buradan indirebilirsiniz.