Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5

PHP’ye gönderilen dosyaları kontrol edip yüklemek
Konuyu Başlatan: root, Görüntülenme: 492, Yanıtlar: 0

Konuyu Görüntüleyenler: 1 Ziyaretçi
#1
Bunun için başta da dediğim gibi önceden anlattığımız html formunu kullanacağız. Ve bu formda gönderilecek dosyayı seçmemizi sağlayacak olan file form elementini yerleştireceğiz. Bir de form etiketine enctype değerine dosya upload edeceğimiz için “multipart/form-data” parametresini ekleyeceğiz.




PHP Kod:
if(isset($_FILES['dosya'])) { 
 
  echo 'Dosya gönderilmiş'
} else { 
 
  echo 'Lütfen bir dosya gönderin'
  


Bu örnekte yanlızca sayfaya bir upload yapılmış mı diye kontrol ettik. Şimdi eğer dosya gönderilmişse boyutuna ve tipine bakma sırasında.

Bunlar için $_FILES global dizininin bizim dosyamız için ürettiği diğer alt dizin değerlerine bakacağız, bunları bir tabloda gösterelim.

İsim: Açıklama
name: Gönderilen dosyanın adı
type: Gönderilen dosyanın tipi
tmp_name: Gönderilen dosyanın geçici olarak sunucuda barındığı adres.
size: Gönderilen dosyanın bayt cinsinden boyutu
error: Dosya gönderilirken gerçekleşen hata kodu
Yukarıdaki değerleri $_FILES global dizininde kendi dosya elementi adımızı girdikten sonra alt dizin şeklinde erişeceğiz.


PHP- Kodu:

Kod:
if(isset($_FILES['dosya'])){ 
   $hata = $_FILES['dosya']['error']; 
   if($hata != 0) { 
      echo 'Yüklenirken bir hata gerçekleşmiş.'; 
   } else { 
      $boyut = $_FILES['dosya']['size']; 
      if($boyut > (1024*1024*3)){ 
         echo 'Dosya 3MB den büyük olamaz.'; 
      } else { 
         $tip = $_FILES['dosya']['type']; 
         $isim = $_FILES['dosya']['name']; 
         $uzanti = explode('.', $isim); 
         $uzanti = $uzanti[count($uzanti)-1]; 
         if($tip != 'image/jpeg' || $uzanti != 'jpg') { 
            echo 'Yanlızca JPG dosyaları gönderebilirsiniz.'; 
         } else { 
            $dosya = $_FILES['dosya']['tmp_name']; 
            copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']); 
            echo 'Dosyanız upload edildi!'; 
         } 
      } 
   } 
}  


Evet farkındayım çok uzun ve karışık görünen bir kod oldu ama koşulları yukarıdan aşağıya doğru incelerseniz aslında gayet düzenli bir şekilde kontrol ettik ve en sonunda tüm koşulları geçtiyse copy() fonksiyonu ile dosyayı geçici dizinden alıp dosyalar dizinine gönderdik.

Sırayla anlatayım. İlk olarak 1. satırda isset() fonksiyonu ile sayfaya gönderilme işlemi yapılıp yapılmadığına baktık.

2. ve 3. satırlarda gönderilen dosya bilgilerinden error değerine bakarak dosya gönderilmesinde herhangi bir hata meydana gelmiş mi diye kontrol ettik. Eğer error değeri 0 ise bir hata meydana gelmemiş demek olur. Bu hataların sebebi daha önceden de bahsettiğimiz gibi yazma izni gibi şeylerden ötürü kaynaklanabilir.


PHP- Kodu:


Kod:
$hata = $_FILES['dosya']['error']; 
if($hata != 0) { 
  echo 'Yüklenirken bir hata gerçekleşmiş.'; 
} else { 
// ...  


6. ve 7. satırlarda size değeri ile dosyanın boyutunu alıp (1024*1024*3) den büyük olup olmadığına baktık. Bu hesabın sonucu 3MB‘nin bayt cinsinden değerini verir. Eğer 3MB den büyük ise kabul etme demiş olduk


PHP- Kodu:


Kod:
$boyut = $_FILES['dosya']['size']; 
if($boyut > (1024*1024*3)){ 
   echo 'Dosya 3MB den büyük olamaz.'; 
} else { 
// ...  


10 – 15 satırları arasında dosyanın tipinin ne olduğuna ve dosyanın uzantısına baktık. Burada ben örnek olarak “image/jpeg” tipini ve jpg uzantısını kullandım, sen hangi dosyalara izin veriyorsan ona göre yanlızca uzantıları ya da tipleri kullanabilirsin. Örneğin $uzanti == ‘jpg’ || $uzanti == ‘gif’ || $uzanti == ‘png’ diyerek yanlızca bu üç uzantılı dosyaların alınmasını sağlayabilirsin.


PHP- Kodu:


Kod:
$tip = $_FILES['dosya']['type']; 
$isim = $_FILES['dosya']['name']; 
$uzanti = explode('.', $uzanti); 
$uzanti = $uzanti[count($uzanti)-1]; 
if($tip != 'image/jpeg' || $uzanti != 'jpg') { 
   echo 'Yanlızca JPG dosyaları gönderebilirsiniz.'; 
} else { 
// ...  


Son olarak da dosya tüm koşulları geçtiğinde onu copy() fonksiyonu ile geçici dizinden 2. parametresine yazdığımız dosyalar klasörüne göndermiş olduk.


PHP- Kodu:


Kod:
$dosya = $_FILES['dosya']['tmp_name']; 
copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']); 
echo 'Dosyanız upload edildi!';  
 
Alıntı
  
[ Etiketler: php’ye | gonderilen | dosyalari | kontrol | edip | yuklemek ]


Hızlı Menü: