Jump to content

Recommended Posts

Mahlzeit,..


ich mal wieder ;-) Aaaalso folgendes Problem. Ich habe eine php-datei, die *.png-Bilder anlegt. Der name der Bilder besteht aus einer userid und dem aktuellen timestamp. (z.B. 1-1205318963.png) So,...nun möchte ich, dass wenn man diese Datei erneut aufruft, quasi das Bild aktualisiert, er die alte Datei löscht. Wie kriege ich das hin, ohne den timestamp der alten Datei irgendwo zu speichern? Ich möchte also die ältere Datei für diese userid löschen, damit nurnoch die Aktuelle gespeichert ist.


Vielen Dank schonmal im Vorraus.

Link to post
Share on other sites

hmm...wie ich dateien lösche weiß ich auch.:-P

es ging darum den timestamp im dateinamen herauszusuchen und dann die jeweilige datei zu löschen.

naja habs jetzt mit dem einrag in die DB gemacht, is zwar nen bissel umständlicher aber wat solls ;-)

Link to post
Share on other sites
Lass dir den Inhalt des Ordners durchlaufen (opendir, readdir). Dann prüfst du bei jedem Element obs ne Datei ist (is_file). Dann gehst du in den Dateinamen und behandelst den wie einen String ...

Das ist extrem unperformant. Dafür ist eben glob() gut.


Ach ja: is_file und dann anschließendes Löschen ist nicht atomar -> Race Conditions.

Link to post
Share on other sites

Das Ding ist folgendes :-)


Also...die Bilder werden ja ständig aktualisiert. Da die Bilder aber aus dem Cache gelesen werden und nich wie geplant direkt sichtbar aktualisiert werden, hänge ich einfach einen timestamp dran, damit er jedesmal quasi ein, vom Namen her, neues Bild lädt. So wird es direkt im Browser aktualisiert wenn man es aufruft. Hat den Vorteil, dass es nich diese blöden header Probleme gibt. (siehe meinen Thread zu "Dynamische Bilder"). Bei machen klappt es mit dem mitsenden des "no-cache", bei manchen aber nicht. Mit dieser Methode klappt es bei jedem.


So,....und nun möchte ich, da bei jeder Bildänderung ein quasi neues Bild erstellt wird, die Älteren löschen. Und dafür musste ich halt den Timestamp aus dem Dateinamen filtern. was mit aber im Nachhinein zu doof war ;-)


Jetzt habe ich ne Tabelle für die Timestamps erstellt, wo jeder User seinen aktuellen Timestamp zum Bild stehen hat. Und bevor der Timestamp geupdatet wird, wird halt die Bilddatei des alten Timestamps gelöscht....fertig aus ;-)

Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...