Bilder löschen, welche kein Media Eintrag hat

Guten Morgen,

ich habe leider im media/image Verzeichnis ganz viele Bilder Leichen, zu welchen es keinen Media Eintrag in der DB gibt.
Wie dies zustande kam, kann ich leider nicht sagen. Leider kann ich den Ordner nicht einfach löschen, da sonst Bilder der Einkaufswelt und Co auch weg sind.
D.h. ich will alle Bilder löschen, welche keinen Datenbankeintrag haben.

Hat von euch zufällig jemand ein Script parat?

Danke

 

Hier die Lösung. Ein Script in das Hauptverzeichnis von Shopware legen und dann ausführen.
Das Ganze ohne Gewähr. Funktioniert nur, wenn der Bildname gleich der Dateiname ist!

 

prepare("SELECT name FROM s_media WHERE name=?");
		$statement->execute(array($fileNew));  
		$result = $statement->fetch();
		
		if ($result === false ) {
			//Bild wird gelöscht, kein Eintrag in s_media
			unlink("$dir/$file");
			var_dump("$dir/$file");
			
		}
				

      }
    }
  }
  closedir($directory);
    
}

?>  

 

Hi zusammen,

ich muss diesen Thread leider nochmal aufwärmen:

Leider stehe ich grade vor dem Problem, dass ich tausende nicht verlinkte Bilder im media Ordner habe, die einfach die Platte vollmüllen.

Diese sind nicht mehr in s_media zu finden und auch im backend weder in artikelbildern noch im papierkorb.

Hab schon CLI: sw:media:cleanup --delete und sw:thumbnail:cleanup verwendet was keine Lösung brachte.

SW Version ist: 5.2.12

Kann da einer Abhilfe schaffen? oder hat einen Tip für mich?

Das Script oben hab ich mal getestet aber das spuckt einfach nichts aus.

Beste Grüße

Philipp

Hier mal nach geschaut ?

https://forum.shopware.com/discussion/35792/geloest-media-db-aufraeumen-auf-filesystem-nicht-mehr-referenzierte-media-dateien-loeschen

Ich glaube die Lösung von ottscho ist für Shopware mit flysystem suboptimal. Die Lösung von ottscho kann m.E. nur greifen wenn alle Bilder in einem Verzeichnis.