• 03-10-2021, 12:14:18
    #1
    Merhaba, aşağıdaki gibi resimleri yüklüyorum ama resimler1234567.jpg gibi isimler vermek yerine resim adını çevirerek url formatına dönüştürerek kaydetmesini istiyorum. resim.jpg yerine resimjpg gibi de bazen saçmalayabiliyor. Bu kalıpta istediğim şekilde nasıl kullanabilirim. Teşekkür ederim


        if ($_FILES["yazi_resim"]["size"]<10240*10240*15){
    
            if ($_FILES["yazi_resim"]["type"]=="application/pdf" || "image/jpeg" || "image/jpg" || "image/png"){
    
              $dosya_adi=$_FILES["yazi_resim"]["name"];
    
              $uret=array("resim","resimler","picture","images","image");
              $uzanti=substr($dosya_adi,-4,4);
              $sayi_tut=rand(1,1000000000000000);
              $yeni_ad="../resimler/".$uret[rand(0,4)].$sayi_tut.$uzanti;
    
                if (move_uploaded_file($_FILES["yazi_resim"]["tmp_name"],$yeni_ad)){
                    $image = imagecreatefromjpeg($yeni_ad);  
                    imagejpeg($image,$yeni_ad,50);
                }
            }
        }
    
        $metin  = "$yeni_ad";
        $eski   = "../";
        $yeni   = "";
        $metin = str_replace($eski, $yeni, $metin); 
    
        $yazi_resim = $metin;
  • 03-10-2021, 12:19:20
    #2
    Merhaba,
    Resim yükleme olarak https://www.verot.net/ sınıfını kullanmanı tavsiye ederim.
  • 03-10-2021, 12:19:58
    #3
    permalink fonksiyonu ararsanız internetten işinizi görür.
  • 03-10-2021, 12:27:56
    #4
    Uygulanmış bir örneği varmı acaba bu yapıya. Teşekkür ederim
  • 03-10-2021, 17:10:29
    #5
    aynı isimde dosya yüklenme ihtimali var
    random bi isim oluşturup kaydetmeni öneririm. kullanıcının dosya ismini görmesi önemli ise yine veritabanına dosyanın ismine bi şekilde kaydetmen gerekicek.
  • 03-10-2021, 17:29:13
    #6
    Vakti zamanında buradaki işlemleri uygulamıştım. Resim adı olarak eklediğim ürün/haber başlığını + domain adını kullanarak kayıt işlemini yaptırıyordum.
  • 04-10-2021, 04:18:36
    #7
    recursive function yazıp dosya adı varsa artı 1 ekle yapabilirsin mesela ben şuna benzer bir şeyi veri tabanında sorguluyorum ama dosyada sorgulama olarak kodu buraya yazdım denemedim ama muhtemelen çalışacak

    function benzer_dosya($gelen_dosya_yeni,$gelen_dosya_original)
    {  
       global $dosya_sayac;
    
       if(file_exists($gelen_dosya_yeni))
       {
          $dosya_sayac++;  
          
          $gelen_dosya_yeni_ad = $gelen_dosya_original."-".$dosya_sayac;
          benzer_dosya($gelen_dosya_yeni_ad,$gelen_dosya_original);
       }
    }
    
    $dosya_sayac = 0;
    benzer_dosya($dosya_adi,$dosya_adi);
    
    echo $dosya_adi."-".$dosya_sayac;
    Şimdi denedim uzantıyı kontrol etmek ve çıkarmak gerek ona göre koda ayar vermek gerekmiş yinede faydalı olacağını umuyorum.