Merhabalar,
Bu yazımda PHP ile çoklu fotoğraf veya dosya yükleme konusuyla ilgili bir örnekten bahsedeceğim. Vereceğim örnek basit bir çoklu fotoğraf yükleme işlemi olacak. Güvenlik veya dosya boyutuyla ilgili kontroller barındırmamaktadır.
Sadece mantığı anlamanız için basit bir yapı oluşturup, bununla ilgili açıklamalar yapacağım.
Hemen basit bir HTML formu oluşturalım;
<form action="" method="POST" enctype="multipart/form-data">
<input id="gorsel" type="file" name="gorsel[]" multiple/>
<input type="submit" name='gorselYukle' value="Yükle"/>
</form>
Dikkat etmeniz gereken noktalar;
- form tagına enctype=”mutlipart/form-data” niteliğini eklemeniz önemlidir. Bu sayede form aracılığıyla dosya yüklenmesine izin verilir.
- Çoklu dosya yükleyeneceği için input tagının name değerinin bir dizi olduğunu “[ ]” köşeli parantezler ile belirtmemiz gerekir. Bu sayede çoklu dosya gönderilebilsin.
- Daha sonra dosya yükleyeceğiniz pencere de çoklu dosya seçilmesini istediğiniz için input tagına multiple niteliğini de eklemeniz gerekiyor. Eğer eklenmezse dosya seçilen pencerede sadece bir dosya seçilir.
- Gönder butonunu type değeri submit olan bir input ile ayarlayabiliriz. Burada da dikkat etmeniz gereken nokta name değeri. Çünkü PHP ile kontrol ederken bu name değeri üzerinden kontrol edeceğiz.
HTML tarafında ki işlemlerimiz bu kadar. Şimdi asıl yüklemenin yapıldığı PHP tarafına geçelim;
<?php
if(isset($_POST['gorselYukle'])) {
for($i=0; $i<count($_FILES["gorsel"]["name"]); $i++) {
$dosyaYukle=$_FILES["gorsel"]["tmp_name"][$i];
$klasor="fotograflar/";
move_uploaded_file($dosyaYukle,"$klasor".$_FILES["gorsel"]["name"][$i]);
}
}
?>
PHP tarafında neler yaptığımızı özetleyelim;
- isset fonksiyonu ile gönder butonundan post veri gelmiş mi kontrol ediyoruz eğer gelmişse işleme alıyoruz.
- for döngüsü ile kaç adet dosya, fotoğraf yüklenmiş ise o sayı kadar aynı işlemi tekrarlatıyoruz.
- $dosyaYukle değişkenine dosyanın adını atıyoruz.
- Aynı şekilde $klasor değişkenine, yüklenecek klasör adını ve yolunu belirtiyoruz.
- move_uploaded_file fonksiyonunun ilk parametresine dosyayı, ikinci parametresine dosya yolu ve dosyanın hangi isimle kaydedileceğini atıyoruz. Bu fonksiyon fotoğraf dosyalarını yükleme işlemini gerçekleştirecektir.
PHP tarafındaki işlemlerimiz de bu kadar olacaktır. Çoklu dosya yükleme işleminin mantığını anlatmak ve kendinize göre geliştireceğiniz şekilde basit bir örnek verdim.
Sorularınız olursa yorumlarda belirtebilirsiniz.
Mutlu Kodlamalar 🙂