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