<?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