Formular mit Imagefield. Bilder löschen -> ImageCache Bilder werden nicht gelöscht

am 24.08.2010 - 13:18 Uhr in
Hallo,
ich habe ein Uploadformular erstellt. Meine Bilder rufe ich im Template mit imagecache auf. So werden unter Zugrundelegung der Presets verschiedene Bilder im Imagecache/Preset Ordner erzeugt.
Wenn ich das Bild aber nun im Formular lösche, wird nur das Origignalbild gelöscht, nicht die in den Imagecache Ordner.
Das ist doch eigentlich ein ganz alltägliches Problem, aber leider habe ich in der Suche keine Lösung gefunden.
Kann mir jemand weiterhelfen?
Danke,
viele Grüße Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
Da kann man nur sagen: "Works
am 24.08.2010 - 14:29 Uhr
Da kann man nur sagen: "Works as designed". Imagecache klinkt sich nur in die Ausgabe der Bilder ein und nicht in die Nodes beim Erstellen, Ändern oder Löschen der Imagefelder. Also weiß Imagecache auch nicht, daß Bilder Im Preset gelöscht werden sollen. Da hilft nur von Zeit zu Zeit in den Presets aufzuräumen oder damit zu leben, daß dort Leichen rumliegen.
Beste Grüße
Werner
Danke für Deinen Beitrag. Ich
am 24.08.2010 - 16:04 Uhr
Danke für Deinen Beitrag.
Ich hab es schon befürchtet, dass man die nicht einfach so mit löschen kann.
Lässt du/ihr die Bilder dann einfach auf dem Server, oder wie handhabt ihr das? Mir würde jetzt auch keine Routine einfallen, wie ich Leichen einfach als solche identifizieren und löschen kann :(
Vielen Dank,
viele Grüße Stefan
Ich würde gerne diesen Thread
am 04.01.2012 - 23:35 Uhr
Ich würde gerne diesen Thread reaktivieren...
Gibt es vielleicht inzwischen eine Lösung hierzu?
Wir haben Nodes mit Image-Fields, die mit der Zeit "veralten", und die wir deshalb löschen - leider werden damit weder die hochgeladenen Bilder, noch die geImageCacheten Versionen gelöscht (=Leichen)...
Danke für jeden Hinweis
Wenn der Node ordnungsgemäß
am 04.01.2012 - 23:58 Uhr
Wenn der Node ordnungsgemäß gelöscht wird, wird auch das Bild im zugehörigen Imagefield gelöscht (das Original). Die Bilder im Imagecache überleben und können nur durch gelegentliches Leeren des Imagecaches abgeräumt werden.
Beste Grüße
Werner
Hmmm, das manuelle Löschen
am 05.01.2012 - 00:07 Uhr
Hmmm, das manuelle Löschen wird etwas aufwendig, zumal die Bilder in Ordnern pro Node (nid) abgelegt sind.
Ich werde wohl ein Minimodul schreiben müssen, das die Löschung vornimmt...
Danke, Werner, fürs Antworten.
Imagecache
am 05.01.2012 - 08:38 Uhr
Die Bilder im Imagecache überleben und können nur durch gelegentliches Leeren des Imagecaches abgeräumt werden.
Also nach dem aktuellen Code (6.x-2.0-beta) zu urteilen, würde ich dem widersprechen (ohne es jetzt explizit getestet zu haben).
Sobald eine Datei (die über ein filefield oder dessen Derivate hochgeladen wurde), ruft [do:imagecache ImageCache] die entsprechende Funktion zum Entfernen der durch [do:imagecache ImageCache] erzeugten Bilder auf. Es kann natürlich dann immer noch passieren, dass diese Dateien nicht gelöscht werden können. Dann sollte sich dazu jedoch eine Meldung im Watchdog finden lassen.
Wenn das auch mit der neuesten Funktion nicht funktioniert, sollte man das Verhalten nochmal genauer untersuchen.
Interessant! Das werde ich in
am 05.01.2012 - 10:50 Uhr
Interessant! Das werde ich in den nächsten Tagen unbedingt testen. Ich melde mich wieder, wenn ich mehr weiss.
Merci!
Die erwähnte Beta-Version von
am 06.01.2012 - 13:33 Uhr
Die erwähnte Beta-Version von ImageCache habe ich bereits im Einsatz. Ich vermute, dass die Delete-Prozeduren in diesem Modul sich darauf beziehen, alle Bilder zu löschen, wenn ein bestimmtes Preset gelöscht wird.
Nicht aber, wenn die Bilder eines Nodes gelöscht werden sollen.
Auch der Code des ImageField-Moduls sieht nicht danach aus, als würde er die ImageCache-Derivate löschen wollen.
IOW: bei mir wird KEIN Bild gelöscht, wenn ich einen Node mit einem ImageField mit unbegrenzter Anzahl Bilder lösche. Watchdog sagt nur "node x wurde gelöscht".
Ich vermute mal, dass absichtlich hochgeladene Bilder nicht gelöscht werden. Bei den meisten Leuten ist das wohl der Normalfall und ist deshalb bisher noch nicht aufgefallen.