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

PHP
110 lines
<?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>';
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
3 lines
2018062622193729.png
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Basit Resim Yükleme Sınıfı

PHP
68 lines
<?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>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX