Php Resim Yükleme Filtre
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];
}
}
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;
}