<?php
Class Yukle{
var $maxBoyut;
var $gonderilenDosya;
var $hatalar;
function Yukle($gonderilenDosya){
$this->gonderilenDosya = $gonderilenDosya;
$this->gonderim = false;
$this->maxBoyut=min($this->boyutGetir(ini_get('post_max_size')), $this->boyutGetir(ini_get('upload_max_filesize')));
}
function kaydet($dizin, $alan, $ustuneyaz,$izin=0777){
$this->gonderim = true;
if($this->gonderilenDosya[$alan]['size'] < $this->maxBoyut && $this->gonderilenDosya[$alan]['size'] >0){
$hatayok = true;
$this->gonderim = true;
$gecici = $this->gonderilenDosya[$alan]['tmp_name'];
$dosya = $this->gonderilenDosya[$alan]['name'];
$tumu = $dizin.$dosya;
if(file_exists($tumu)){
if($ustuneyaz){
@unlink($tumu) || $hatayok=false; $this->hatalar = "Yukleme sinifi kaydetme hatasi: uzerine yazilamiyor ".$tumu."<BR>";
@copy($gecici,$tumu) || $hatayok=false; $this->hatalar .= "Yukleme sinifi kaydetme hatasi: kopyalanamiyor ".$tumu."<BR>";
@chmod($tumu,$izin) || $erhatayokrors=false; $this->hatalar .= "Yukleme sinifi kaydetme hatasi: izinleri degistirilemiyor: ".$tumu."<BR>";
}
}else{
@copy($gecici,$tumu) || $hatayok=false;$this->hatalar = "Yukleme sinifi kaydetme hatasi: kopyalanamiyor ".$tumu."<BR>";
@chmod($tumu,$izin) || $hatayok=false;$this->hatalar .= "Yukleme sinifi kaydetme hatasi: izinleri degistirilemiyor: ".$tumu."<BR>";
}
return $hatayok;
}elseif($this->gonderilenDosya[$alan]['size'] > $this->maxBoyut){
$this->hatalar = "Dosya boyutu maksimum dosya boyutu ".$this->maxBoyut." baytı aşıyor";
return false;
}elseif ($this->gonderilenDosya[$alan]['size'] == 0){
$this->hatalar = "Dosya boyutu 0 bayt";
return false;
}
}
function farkliKaydet($dosyaAdi, $dizin, $alan, $ustuneyaz,$izin=0777){
$this->gonderim = true;
if ($this->gonderilenDosya[$alan]['size'] < $this->maxBoyut && $this->gonderilenDosya[$alan]['size'] >0){
$hatayok = true;
$gecici = $this->gonderilenDosya[$alan]['tmp_name'];
$tumu = $dizin.$dosyaAdi;
if (file_exists($tumu)){
if ($ustuneyaz){
@unlink($tumu) || $hatayok=false; $this->hatalar = "Yukleme sinifi farkli kaydetme hatasi: uzerine yazilamiyor ".$tumu."<BR>";
@copy($gecici,$tumu) || $hatayok=false; $this->hatalar .= "Yukleme sinifi farkli kaydetme hatasi: kopyalanamiyor ".$tumu."<BR>";
@chmod($tumu,$izin) || $hatayok=false; $this->hatalar .= "Yukleme sinifi farkli kaydetme hatasi: kopyalanamiyor".$tumu."<BR>";
}
}else{
@copy($gecici,$tumu) || $hatayok=false; $this->hatalar = "Yukleme sinifi farkli kaydetme hatasi: kopyalanamiyor ".$tumu."<BR>";
@chmod($tumu,$izin) || $hatayok=false; $this->hatalar .= "Yukleme sinifi farkli kaydetme hatasi: izinleri degistirilemiyor: ".$tumu."<BR>";
}
return $hatayok;
}elseif($this->gonderilenDosya[$alan]['size'] > $this->maxBoyut){
$this->hatalar = "File size exceeds maximum file size of ".$this->maxBoyut." bytes";
return false;
}elseif($this->gonderilenDosya[$alan]['size'] == 0){
$this->hatalar = "File size is 0 bytes";
return false;
}
}
function boyutGetir($boyut){
$ek = strtoupper(substr($boyut, -1));
if(!in_array($ek,array('P','T','G','M','K'))){
return (int)$boyut;
}
$deger = substr($boyut, 0, -1);
switch ($ek) {
case 'P': $deger *= 1024;
case 'T': $deger *= 1024;
case 'G': $deger *= 1024;
case 'M': $deger *= 1024;
case 'K': $deger *= 1024;
break;
}
return (int)$deger;
}
function dosyaAdi($alan){
return $this->gonderilenDosya[$alan]['name'];
}
function dosyaTipi($alan){
return $this->gonderilenDosya[$alan]['type'];
}
function dosyaBoyutu($alan){
return $this->gonderilenDosya[$alan]['size'];
}
}
if($_FILES){
$u=new Yukle($_FILES);
$u->kaydet("C:/tmp/", "file", $ustuneyaz=true,$izin=0777);
$u->farkliKaydet("test2.pdf","C:/tmp/", "file", $ustuneyaz=true,$izin=0777);
echo $u->dosyaAdi("file")."<br>";
echo $u->dosyaTipi("file")."<br>";
echo $u->dosyaBoyutu("file")." bayt";
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Yükle">
</form>
Çıktısı
Kitap.pdf
application/pdf
3890313 bayt