• 25-09-2012, 14:12:18
    #1
    merhabalar ben resim galerisi hazırladım ama şimdi admin bölümünde resim silerken yaptığım kod sadece veri tabanından siliyor,
    Şimdi ben bir kod hazırlayıp veritabanında karşılığı olmayan resimleri otamatik silecek bir kod hazırlamak istiyorum
    yardımcı olursanız sevinirim
  • 25-09-2012, 18:13:34
    #2
    aşağıdaki kodlar ile yaptım ancak kendi pcimde olmasına rağmen çok kasıyor.
    <html><head>
    <meta http-equiv="Content-Language" content="tr">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
    <title>Yeni Sayfa 1</title>
    </head>
    								<%
    
    Set Baglanti = Server.CreateObject("ADODB.Connection")
    Baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../vtbmaden.MDB") 'Database Dosyasi
    Set rs = Server.CreateObject("ADODB.RecordSet") 'RecordSet Nesnesini Olu?turduk
    mertSQL = "SELECT * from galeri "'Tablo Adynyz
    rs.open mertSQL,Baglanti,1,3
    toplam=rs.recordcount
    %>
    
    <body>
    <%
    k=0
     Set FSO=Server.CreateObject("Scripting.FileSystemObject")
     Set Dosya=FSO.GetFolder(Server.MapPath("../galeri"))
     for each bulunan in Dosya.files
     rs.movefirst
     sil="true"
     a=bulunan.Name 
     a="galeri/" &a 
     'response.write a &"<br>"
     
     		 for i=1 to toplam
     		 if rs("Url")= a or rs("k_url")=a  then sil="false"
     		 rs.movenext
    		 next
    		 
    	 if sil<>"false" then
    	 	 response.write bulunan.Name & " dosyası silindi<br>"
    	 bulunan.delete
    	 k=k+1
    	 end if		
     next
    if k=0 then
    response.write "silinmesi gereken bir dosya bulunamadı"
    else
    response.write k & " adet dosya  silindi" 
    end if
    
    %>
    </body>
    
    </html>
  • 25-09-2012, 19:11:02
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    kodlarının %90'nı gereksiz, o kadar uğraşacağına direk silsene

    set nt=Server.CreateObject("Scripting.FileSystemObject ")
    set rs=nt.GetFile("resimyolu/resim")
    rs.Delete
  • 25-09-2012, 19:47:29
    #4
    nicturkey adlı üyeden alıntı: mesajı görüntüle
    kodlarının %90'nı gereksiz, o kadar uğraşacağına direk silsene

    set nt=Server.CreateObject("Scripting.FileSystemObject ")
    set rs=nt.GetFile("resimyolu/resim")
    rs.Delete
    benim yazdıklarımda genelde zaten hep çok gereksiz kod oluyor.
    ama ben veri tabanında kayıtları olmayan resimleri silmek istiyorum,sizin verdiğiniz kodlar yapar mı anlamadım acıkcası
  • 25-09-2012, 19:53:05
    #5
    Bu işlemi en başından yapsaydınız şimdi uğraşmazdınız. Resim dosyası çoksa klasörde kasması doğaldır.
  • 26-09-2012, 09:14:30
    #6
    oktayman adlı üyeden alıntı: mesajı görüntüle
    benim yazdıklarımda genelde zaten hep çok gereksiz kod oluyor.
    ama ben veri tabanında kayıtları olmayan resimleri silmek istiyorum,sizin verdiğiniz kodlar yapar mı anlamadım acıkcası
    Fakat bunu toplu yapmanız sunucunun çok ağırlaşmasına neden olur. Düşünün resimler klasöründe 1000 tane gereksiz resim var ve bunları bir anda silmeye kalktığını.

    en basiti verdiğim kod ile teker teker silme işlemi. NOT yukarda ki kodu geliştirerek elbette birden çok silme işlemini gerçekleştirebilirsiniz...
  • 26-09-2012, 09:27:11
    #7
    Üyeliği durduruldu
    nicturkey adlı üyeden alıntı: mesajı görüntüle
    kodlarının %90'nı gereksiz, o kadar uğraşacağına direk silsene

    set nt=Server.CreateObject("Scripting.FileSystemObject ")
    set rs=nt.GetFile("resimyolu/resim")
    rs.Delete
    bence %90'ı gerekli.. içinde kontroller var, dosya yerinde mi değil mi vs.. böyle yaparsan dosya yerinde yoksa zaten hata verecektir..