Hallo und gute Nacht,
Interessanter Ansatz ;) Wusste nicht, dass man auch Bilder in der Session zwischenspeichern kann.
Werde ich gleich mal testen, denn der Datenmüll nervt mich auch immer... ;)
Dann will ich Dir noch einen weiteren Hinweis dazu geben. Für einzelne kleinere Bilder kann man das in der eigentlichen Sessiondatei unterbringen...
Aber damit der Speicher nicht platzt, wenn es mehrere oder größere Bilder werden, wenn die Session wieder geladen wird (das ist der kritische Zeitpunkt!), habe ich die Bilder in eigenen "Sessiondateien" gespeichert. Die kann man dann einzeln und wahlweise dazuladen.
Die Namen dafür werden in der Haupt-Sessiondatei abgelegt und werden bei jedem Request, der ein session_start() hat, mit touch() am Leben erhalten. Diese leigen aber auch im zugehörigen Session-Verzeichnis und unterliegen dem gleichen Algorithmus für den Garbage Controller, verschwinden also auch wieder, nachdem die Min-Lifetime (irrsinnigerweise konfiguriert über session.gc_maxlifetime) abgelaufen ist.
Das Verfahren sollte eigentlich mal ein Abschnitt vom Wiki-Artikel "File Upload" werden.
Ich habe das wohl auf einer anderen Sicherungsplatte. Muss ich erst suchen...
Mein Rechner war damals leider unsanft gestorben.
ich hatte dafür ein paar spezielle Funktionen erstellt.
string get_random_string()
ressource_id get_random_cache_file()
bool mime_check_image()
int save_uploaded_file()
usw.
Im Prinzip müsste man die auch schon im Self-Archiv wiederfinden.
Das touchen der gemerkten Zusatz-Sessiondateien habe ich voererst per register_shutdown_function() realisiert. Das ist mMn auch ausreichend. Die Session muss ja erst instantiiert sein, bevor man auf ihre Daten zugreifen kann, um die Namen dann auch auslesen zu können.
Wenn ich morgen etwas fitter bin, suche ich die Funktionen nochmal...
Grüße
TS