PHP ile çoklu Resim Seçme ve Yükleme

Bir Forma birden fazla resim yüklemem lazım. Tek bir resmi yükleyebilliyorum ama 15-20 resmi yüklemem lazım. Bunları seçme ve yüklemesini nasıl yapabilirim?

Form kısmındaki resim yükleme form elementini bu şekilde yapman lazım:

<input type="file" name="files[]" multiple/>

Böylece resim yükleme ekranına birden fazla resim seçebilirsin. Sonrasında php kısmında da aşağıdaki şekilde seçtiğin resimleri alabilirsin:

$hata=array();
$izin_verilen_resim_uzantilari=array("jpeg","jpg","png","gif");
$yuklenecek_klasor_ismi= "resim_galerisi";

foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) {
    $resim_ismi=$_FILES["files"]["name"][$key];
    $resim_tmp_yolu=$_FILES["files"]["tmp_name"][$key];
	
	// uzanti kontrolu icin uzantiyi aliriz
    $resim_uzantisi=pathinfo($resim_ismi,PATHINFO_EXTENSION);

	// yuklenmeye calisilan resim uzantisina izin veriliyorsa bu kisim calisir.
    if(in_array($resim_uzantisi,$izin_verilen_resim_uzantilari)) {
		
		// Resmi yukleyecegin klasorde ayni isimde resim varmi yokmu kontrolu yapariz
        if(!file_exists($yuklenecek_klasor_ismi."/".$txtGalleryName."/".$resim_ismi)) {
            move_uploaded_file($resim_tmp_yolu=$_FILES["files"]["tmp_name"][$key],$yuklenecek_klasor_ismi."/".$txtGalleryName."/".$resim_ismi);
        
		// eger resim yuklenecek klasorde varsa asagidaki kodlarla resim ismini degistirerek yukluyoruz,
		// boylece onceki resmin uzerine yazmaz
		}else {
            $filename=basename($resim_ismi,$resim_uzantisi);
            $yeni_resim_ismi=$filename.time().".".$resim_uzantisi;
            move_uploaded_file($resim_tmp_yolu=$_FILES["files"]["tmp_name"][$key],$yuklenecek_klasor_ismi."/".$txtGalleryName."/".$yeni_resim_ismi);
        }
		
	// Yuklenmeye calisilan resim uzantisina izin verilmiyorsa buradan hata degiskenine kaydederiz.
    }else{
        array_push($hata,"$resim_ismi, ");
    }
}

//$hata degiskenini ekrana yazdirarak hatali resim isimlerini gorebilirsin.

Kod içerisinde elimden geldiğince açıklama yapmaya çalıştım, umarım anlaşılabilir. Kaynak kodlarını örnek aldığım stackoverflow gönderisinide kontrol edebilirsin.

Ayrıca benim tavsiyem resim upload için iyi bir class kullanmanız ki ben bir ara uzun zaman verot resim yükleme class 'ını kullandım ve bununla yapamayacağınız bir işlem yok (Örnek demo). Ayrı olarak resimler üzerinde tam kontrol sağlayabiliyorsunuz, watermark ekleme, resim renklerini düzenleme, yüklenen resimlerin güvenli olup olmadığını kontrol etme, yükleme limiti koyma, resimleri boyutlandırma vs. daha bir çok şey. Örnek kod ve yapı sitesinde mevcut, eğer anlamadığın bir konu olursa yeni bir soru oluşturarak konu açabilirsin, detaylı bir incelemeden sonra anlaşılır bir cevap oluşturabilirim ilk fırsatta.

1 Beğeni

Teşekkür ederim, class kullanmak çok işime yarayacaktır.

2 Beğeni