Die $_FILES-Variable enthält nur die aten für die aktuelle Anfrage, also die Dateien, die mit dem aktuellen Aufruf hochgeladen wurden. Mit der Session hat das nichts zu tun. Wenn Du die Informationen über mehrere Aufrufe hinweg speichern willst, musst Du diese Information entweder im Webform mitgeben (unsicher) oder in der Server-Session (sicherer, aber Anfällig gegen manche Angriffe) speichern.
Eine gute Möglichkeit wäre, hochgeladene Bilder in einer "Session Files Table" zu verwalten (also die Dateinamen) und in der eigentlichen Session nur die IDs dieser Session-Tabelle zu speichern. Innerhalb der Session File Table werden diese Bilder über einen FK an die Session-Tabelle gebunden und selber eindeutig über einen PK indiziert. Ferner kann ein weiteres Fel für den Verwendungszeick z.B. "PostNew", "PNNew", "PostImg", ... vergeben werden, um auch vielen offenen Browserfenstern bei Multiprocessing-Fähigen Nutzern noch korrekte Ergebnisse zu erhalten

Bilder, deren SessionID ungültig abgelaufen ist, oder, die als Download aufgenommen wurden, können danach aus der SessionFile Table ausgetragen werden UND im Falle der abgelaufenen Session vom Server entfernt werden. Innerhalb der Session File Table sollten die vollständigen Infos des $_FILES-Arrays rekonstruierbar bleiben.
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.