v2.5.2
Giriş yap

Php Resim Yükleme Filtre

Anonim
641 defa görüntülendi

Merhabalar. Çoklu resim yüklemek istiyorum ve bu aşağıdaki kodu kullanıyorum gayet düzgün çalışıyor. Fakat resmin png jpg gif olarak filtrelenmesini ve 5mb dan fazla olmaması filtrelemesini yapamıyorum devamlı hata alıyorum. Kodu nereye eklemeliyim ?

$klasor="resimler";

	$dosya_isim_sayi=count($_FILES['dosya']['name']); 
	for($i=0;$i<$dosya_isim_sayi;$i++){ 
	if(!empty($_FILES['dosya']['name'][$i])){ 
	
	$dosya_adi   =    $_FILES["dosya"]["name"][$i];
	
	$uret=array("as","rt","ty","yu","fg");
        $uzanti=substr($dosya_adi,-4,4);
        $sayi_tut=rand(1,10000);
	
	
	$yeni_ad=$uret[rand(0,4)].$sayi_tut.$uzanti;
	 move_uploaded_file($_FILES['dosya']['tmp_name'][$i],$klasor."/".$yeni_ad); 
	 $url = $_FILES['dosya']['name'][$i];
	 $name = $_FILES['dosya']['name'][$i];
	 } 
}
Cevap yaz
Cevaplar (3)
okumusmr
1171 gün önce

Merhaba Mehmet, kod bende hata vermedi çalışıyor sende ki sorunu bilmiyorum. Şunu deneyebilir misin

$_FILES['dosya']['size'] < 40000000 // bu kısım yerine
$_FILES['dosya']['size'] < 5 * 1024 * 1024 // böyle yapabilir misin
mehmetozcakir
1176 gün önce

@okumusmr 5mb den küçükta atsam zip dosyasıda atsam hep else deki Dosya 5mb büyük olamaz uyarısını veriyor hiç bir işlem yapmıyor

okumusmr
1177 gün önce

Merhaba, sanırsam problemin uzantıyı düzgün alamadığın için. Aşağıdaki kodu deneyebilir misin ?



$dosya_isim_sayi = count($_FILES['dosya']['name']);
for ($i = 0; $i < $dosya_isim_sayi; $i++) {
	if (!empty($_FILES['dosya']['name'][$i])) {
		// $_FILES['dosya']['size'] değeri bit olarak gelmekte.
		// 40000000 değeri 5 mb değerine eşit. Burayı daha farklı bir şekilde kurgulayabilirsin.
		if ($_FILES['dosya']['size'] < 40000000) {
			$dosya_adi = $_FILES["dosya"]["name"][$i];
			$uzanti = pathinfo($dosya_adi, PATHINFO_EXTENSION);
			$uret = array("as", "rt", "ty", "yu", "fg");
			$sayi_tut = rand(1, 10000);
			$izin_verilen_uzantilar = ['jpg', 'png', 'gif'];
			if (in_array($uzanti, $izin_verilen_uzantilar)) {
				$yeni_ad = $uret[rand(0, 4)] . $sayi_tut . '.' . $uzanti;
				move_uploaded_file($_FILES['dosya']['tmp_name'][$i], $klasor . "/" . $yeni_ad);
				$url = $_FILES['dosya']['name'][$i];
				$name = $_FILES['dosya']['name'][$i];
			} else {
				echo 'Uzantı hatası';
				exit;
			}
		} else {
			echo 'Dosya 5mb büyük olamaz';
		}
	}
}

Ayrıca isim için farklı bir function istersen benim kullandığım fonksiyonu da aşağıya bırakıyorum.


function generateRandomString($length = 10)
{
	$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	$charactersLength = strlen($characters);
	$randomString = '';
	for ($i = 0; $i < $length; $i++) {
		$randomString .= $characters[rand(0, $charactersLength - 1)];
	}
	return $randomString;
}