Resim Yükleme ve Boyutlandırma Sınıfı

<?php
header('Content-Type: text/html; charset=utf-8');
class resimYukleyici{
	public $isim;
	public $tip;
	public $boyut;
	public $gecici;
	public $hata;
	public $resim;
	public $kucukresim;
	public $mesaj;
	public $yeniresim;
	public $yenikucukresim;
	public function __construct(){
		global $_FILES;
		$this->hata = $_FILES['image']['error'];
		if($this->hata != 0){
			$this->mesaj = $this->hata;
			$this->mesaj;
			return false;
		}else{
			$this->isim = $_FILES['image']['name'];
			$this->tip = $_FILES['image']['type'];
			$this->boyut = $_FILES['image']['size'];
			$this->gecici = $_FILES['image']['tmp_name'];
			return true;
		}
	}
	public function validate($maxdosyaboyutu,$minresimboyutu){
		if($this->tip != 'image/jpeg' && $this->tip != 'image/gif' && $this->tip != 'image/png'){
			$this->mesaj = 'Hatali dosya formati.';
			return false;
		}
		if($this->boyut > $maxdosyaboyutu){
			$this->mesaj = 'Dosya cok buyuk.';
			return false;
		}
		$boyut = getimagesize($this->gecici);
		if($boyut[0] < $minresimboyutu || $boyut[1] < $minresimboyutu){
			$this->mesaj = 'boyutlar cok kucuk.';
			return false;
		}else{
			return true;
		}
	}
	public function kirp($maxBoyut, $maxKucukBoyut){
		list($orjinalgenislik, $orjinalyukseklik) = getimagesize($this->gecici);
		if($orjinalgenislik > $orjinalyukseklik){
			$genislik = $maxBoyut;
			$yukseklik = intval($maxBoyut*($orjinalyukseklik/$orjinalgenislik));
			$kucukgenislik = $maxKucukBoyut;
			$kucukyukseklik = intval($maxKucukBoyut*($orjinalyukseklik/$orjinalgenislik));
		}else if($orjinalgenislik < $orjinalyukseklik){
			$genislik = intval($maxBoyut*($orjinalgenislik/$orjinalyukseklik));
			$yukseklik = $maxBoyut;
			$kucukgenislik = intval($maxKucukBoyut*($orjinalgenislik/$orjinalyukseklik));
			$kucukyukseklik = $maxKucukBoyut;
		}else{
			$genislik = $maxBoyut;
			$yukseklik = $maxBoyut;
			$kucukgenislik = $maxKucukBoyut;
			$kucukyukseklik = $maxKucukBoyut;
		}
		$this->resim = imagecreatetruecolor($genislik,$yukseklik);
		$this->kucukresim = imagecreatetruecolor($kucukgenislik, $kucukyukseklik);
		if($this->tip == 'image/gif'){
			$kaynakresim = imagecreatefromgif($this->gecici);
		}else if($this->tip == 'image/jpeg'){
			$kaynakresim = imagecreatefromjpeg($this->gecici);
		}else{
			$kaynakresim = imagecreatefrompng($this->gecici);
		}
		imagecopyresampled($this->resim,$kaynakresim,0,0,0,0,$genislik,$yukseklik,$orjinalgenislik,$orjinalyukseklik);
		imagecopyresampled($this->kucukresim,$kaynakresim,0,0,0,0,$kucukgenislik,$kucukyukseklik,$orjinalgenislik,$orjinalyukseklik);
		
	}
	public function yukle($dizin,$kalite){
		$uzanti = explode('.',$this->isim);
		$isim=date("YmdHis").rand(1,100);
		$this->yeniresim = $isim.'.'.$uzanti[1];
		$this->yenikucukresim = $isim.'kucuk.'.$uzanti[1];
		if($this->tip == 'image/gif'){
			imagegif($this->resim, ($dizin.$this->yeniresim));
			imagegif($this->kucukresim, $dizin.$this->yenikucukresim);
		}
		else if($this->tip == 'image/jpeg'){
			imagejpeg($this->resim, $dizin.$this->yeniresim, $kalite);
			imagejpeg($this->kucukresim, $dizin.$this->yenikucukresim, $kalite);
		}
		else{
			imagepng($this->resim,$dizin.$this->yeniresim);
			imagepng($this->kucukresim,$dizin.$this->yenikucukresim);
		}
		$this->mesaj = 'Dosya yuklendi.';
	}
}
if (isset($_POST['yukle'])){
	$dizin=dirname(__FILE__)."/";
	$i=new resimYukleyici;
	$i->kirp(250,250);
	$i->yukle($dizin ,100);
	echo $i->yeniresim.'<br>';
	echo '<img src="/'.$i->yeniresim.'">';
}else{
	echo '<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" name="yukle" value="Yükle">
	</form>';
}
?>

Çıktısı

2018062622193729.png

Basit Resim Yükleme Sınıfı

<?php
class resimYukle {
	var $yol;
	var $yeniresim;
	var $uzanti;
	var $resim;
	var $hata;
	var $yuklenen;
	function tipKontrol(){ 
		if((strcmp($this->resim['type'],'image/jpeg')==0)||(strcmp($this->resim['type'],'image/gif')==0)|| (strcmp($this->resim['type'],'image/pjpeg')==0)||(strcmp($this->resim['type'],'image/jpg')==0)||(strcmp($this->resim['type'],'image/x-png')==0)){ 
			switch($this->resim['type']){ 
	 	 		case 'image/jpg': 
	 	 			$this->uzanti = '.jpg'; 
	 	 		break; 
	 	 		case 'image/jpeg': 
	 	 			$this->uzanti = '.jpg'; 
	 	 		break; 
	 	 		case 'image/pjpeg': 
	 	 			$this->uzanti = '.jpg'; 
	 	 		break; 
	 	 		case 'image/gif': 
	 	 			$this->uzanti = '.gif'; 
	 	 		break;  
	 	 		case 'image/x-png':
	 	 			$this->uzanti = '.png';
	 	 		break;
	 	 	}
	 	 	return true; 
	 	}else{ 
	 		$this->hata .= '<br>Bilinmeyen Resim Tipi '.$this->resim['type'];
	 		return false;
	 	} 
	} 
	function yukle($yeniyol,$resim,$yeniresim=''){
		$this->yol = $yeniyol;
		$this->resim = $resim;
		$this->yuklenen = '';
		if($yeniresim != ''){
			$this->yeniresim = $yeniresim;
		}else{
			$this->yeniresim = $this->resim_adi;
		}
		$this->tipKontrol();
		if($this->uzanti){
			$resimFinal = $this->yol.$this->yeniresim.$this->uzanti;
			if(copy($this->resim['tmp_adi'], $resimFinal)){
				$this->yuklenen = $this->yeniresim.$this->uzanti;
				return $resimFinal;
			}else{
				$this->hata .= '<br>'.$resimFinal.' kopyalanamadı.'.$this->yol.' yazma izinlerini kontrol edin';
				return false;
			}
		}else{
			$this->hata .= '<br>Uzantı alınamadı '.$this->uzanti;
			return false;
		}
	}
}
if($_FILES){
    $y = new resimYukle();
    $y->yukle(getcwd().'/',$_FILES["file"],'yeni');
    echo $y->hata;
}
?>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" adi="file">
    <input type="submit" value="Yükle">
</form>