Codeigniter Image Upload ve Manipulation İşlemleri

CodeIgniter serisiyle ilgili ilk yazımda pagination’dan bahsetmiştim.Bu yazıda ise file uploading ve image manipulation işlemlerinin nasıl yapıldığını anlatacağım.Öncelikle controller dosyamızı oluşturalım.Bu dosyamıza upload ismini verelim.

load->view(‘upload_view.php’);
}

function uploading()
{

$this->gallery_path=realpath(APPPATH.’../resimler’);

$config[‘upload_path’]=’resimler/’;
$config[‘allowed_types’]=”jpg|jpeg|gif|png”;
$config[‘file_name’]=’picture_’.date(‘Y-m-d’).”_”.rand(1,100);
$config[‘overwrite’]=FALSE;
$config[‘max_width’]=1000;
$config[‘max_height’]=1000;
$config[‘max_size’]=2000 ;// lets you upload 2 mb file size.

$this->load->library(‘upload’,$config);
$uploaded=$this->upload->do_upload(‘resim’);
$this->file_inf=$name=$this->upload->data();

if($uploaded)
{
echo ‘Upload islemi gerceklestirildi’.’Görmek icin‘;
$this->size_image();
}
else
{
echo $this->upload->display_errors();

}
}

Öncelikle uploading() fonksiyonumuza bakarsak upload library’sine geçirmek istediğimiz config değerlerini ayarladığımızı görüyoruz.Bunlar sırasıyla; dosyanın hangi dizine upload edileceği (upload_path),hangi formatta dosyalara izin verileceği(allowed_types),dosyanın adı(file_name),aynı dosyadan tekrar upload olursa overwrite işleminin gerçekleşip gerçekleşmeyeceği(overwrite),max genişlik(max_width),max yükseklik(max_height) ve max boyut(max_size) değerleri.Sınıf değişkenimiz olan gallery_path’e de upload işlemlerinin olacağı dosyanın(resimler) dizinini atıyoruz.Daha sonra belirlemiş olduğumuz değerlerle library’mizde initializeişlemlerini gerçekleştiriyoruz. Daha sonra upload class’ının do_upload() fonksiyonuna, formumuzdan gelen file tipindeki input’un name değerini geçiriyoruz.Ve daha sonra upload->data() ile upload olan dosyanın bilgilerine ulaşıyoruz ve sınıf değişkenimize atıyoruz.Eğer upload işlemi gerçekleştiyse de o resmi gösteren bir link yaratıyor ve size_image() fonksiyonumuzu çağırıyoruz.Bu fonksiyonumuz ise şöyle;

function size_image()
{
$config=array(
‘source_image’=>$name[‘full_path’],
‘width’=>100,
‘height’=>100,
‘new_image’=>$this->gallery_path.’/thumbs’,
‘maintain_ration’=>true,
);
$this->load->library(‘image_lib’,$config);
$this->image_lib->resize();
}
Kodlarda resize() işleminden önce initialize için kaynak resmin path’ini, resmi kopyalamak istediğimiz dizini,yeni genişlik ve yükseklik değerlerini giriyoruz.Ve sonuç olarak da thumbs diye oluşturduğum dosyada, yeniden boyutlanmış resimleri barındırmış olacağız.Unutmadan upload_view.php dosyasından da bahsedelim;


Bu dosya, controller dosyamız çalıştırıldığı anda devreye girecek olan kodlarımızı barındırıyor.Bu form sayesinde dosya seçip upload işleminin yürütüleceği uploading fonksiyonuna yönlendirileceğiz.

NOT: Dosyanın upload olacağı dosyayı ci’nin altında ana dizinde oluşturmanız gerekiyor.Yani benim resimlerdiye oluşturduğum klasörü.Ayrıca onun altında da thumbs klasörü oluşturup, işlemlerinize başlayabilirsiniz. Controller dosyasındaki kodları gist’eyapıştırdım.Buradan bakıp, faydalanabilirsiniz.

Bir Cevap Yazın

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