PHP - Çoklu Fotoğraf Yükleme
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;
<input id="gorsel" type="file" name="gorsel[]" multiple="">
<input type="submit" name="gorselYukle" value="Yükle">
Dikkat etmeniz gereken noktalar:
- form tagına enctype="multipart/form-data" niteliğini eklemeniz önemlidir. Bu sayede form aracılığıyla dosya yüklenmesine izin verilir.
- Çoklu dosya yükleyeceğ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ındaki 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şse o sayı kadar aynı işlemi tekrarlatıyoruz.
- $dosyaYukle değişkenine dosyanın geçici adı atanıyor.
- Aynı şekilde $klasor değişkenine, yüklenecek klasörün adı ve yolu belirleniyor.
- move_uploaded_file fonksiyonunun ilk parametresine dosyanın geçici yolu, ikinci parametresine ise dosyanın hangi isme ve hangi klasöre kaydedileceğini belirtiyoruz. 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ştirebileceğiniz şekilde basit bir örnek sundum. Sorularınız olursa yorumlarda belirtebilirsiniz.
Mutlu Kodlamalar! :)