image speichern und löschen
Hallo Zusammen
Ich möchte ein Bild mit PHP erzeugen und dieses dann in eine Datei speichern. Danach soll das Bild wieder gelöscht werden. Zwischen dem Speichern und dem Löschen soll das Bilg aber über den <IMG>-Tag angezeigt werden. Ablauf: -> Bild erzeugen -> Bild in Datei speichern -> Bild über <IMG> anzeigen -> Bild (Datei) löschen Ich mache es über diesen Umweg, da ich den Link der Datei einem anderen Server übergeben möchte (via RPC). Dieser soll dann das Bild anzeigen können. Um Speicher zu sparen, muss das Bild sofort wieder gelöscht werden. Folgendes habe ich mal versucht: PHP-Code:
Ich nehme an, das hat damit zu tun, dass die Daten erst am Schluss an den Browser gesendet werden. Das Bild ist dann ja schon nicht mehr vorhanden. Hat jemand eine idee, wie ich dieses Problem lösen kann? Oder kann ich gleich mit RPC das Bild als Datei senden? (Gäbe dann aber wohl wieder Performanceprobleme, oder?) Mit bestem Dank für eure Hilfe attentiveone |
Zitat:
Macht's nicht auch einfach ein Skript, dass alle Bilder, die älter als n Minuten sind löscht? |
Hallo
Vielen Dank für Deine Antwort. An das habe ich auch schon gedacht. Dies wäre dann die Auswegslösung. Ich müsste dafür eine Menge Cronjobs setzten (sagen wir alle fünf Minuten). Ich möchte nicht, dass das Script durch den Benutzer, z.B. bei jedem Login eines Benutzers, ausgeführt wird. Es gibt ja keine Möglichkeit, das Löschen zu verzögern, das Script aber weiterlaufen zu lassen, oder? (würde mich verwundern und wiederspricht jeglicher Logik - Aber ich habe schon mal gestaunt, zu was PHP alles fähig ist.) Ansonsten werde ich dann auf die oben benannte Lösung zurückgreifen. Gruss attentiveone |
Du könntest nach dem echo ein flush() setzen, dann werden erstmal alle Daten an den Client geschickt. Danach noch ein sleep() und das Script schläft einige Sekunden lang und danach das unlink(). So könnte es gehen, habs aber nicht ausprobiert.
|
Vielen Dank für Dein Antwort.
Leider funktioniert es aber auf diesem Wege nicht. Wenn ich es wie folg mache: PHP-Code:
Vielleicht gibt es auf dieser Überlegung eine andere Möglichkeit. Ansonsten muss ich wohl doch auf die alter Version (mit Cronjob)zurückgreifen! Gruss attentiveone |
Das muss kein Cronjob sein. Du kannst doch zu Beginn des Scriptes als erstes eine Routine einbauen, die prüft, ob ältere Bilder vorhanden sind und diese dann löscht.
|
Ja, das ist ne Möglichkeit. Ich wollte bei meiner Lösung noch so jedes kleine Detail, welches der Performance schadet möglichst gar nicht implementieren. Bei diesem Beispiel werde ich wohl auf diese Möglichkeit zurückgreifen müssen. Vielleicht werde ich es mit Cronjobs verbinden, für den Fall, wenn lange keine Zugriffe gemacht werden.
Mit bestem Dank für alle Antworten. Gruss Attentiveone |
Wenn du die alten Bilder bei jedem Aufruf des Scriptes löscht, werden die Bilder ja sehr häufig gelöscht und belasten so auch nicht wirklich den Speicher. Oder erzeugst du pro Aufruf viele Bilder?
|
Es kann durchaus sein, dass viele Bilder erzeugt werden. Ich habe mal einen Prototypen (wenn man das schon so nenne kann) gebastelt und mit 700 Bilder, die zum löschen sind gearbeitet. Das ging hervorragend. Auch wirklich fast keine Verzögerung. Ich hatte es mir schlimmer vorgestellt.
Und ich kann die Bilder eigentlich direkt nach einer Sekunde weider löschen. Dann wenn nämlich der Browser das Bild angezeigt hat. Auch das speichern unter funktioniert noch, obwohl das Bild eigentlich gar nicht mehr am gespeicherten Ort vorhanden ist. Mit bestem Dank für all eure Antworten. Ich habe zwar nicht meine "Wunschlösung" bekommen, werde aber mit dieser Lösung gut arbieten können. Gruss AttentiveOne |
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:47:41 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.