SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.11.2004, 12:23:02
theAttentiveOne theAttentiveOne ist offline
Anfänger
 
Registriert seit: Feb 2004
Beiträge: 19
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:
imagejpeg($image"test50.jpg"50);
imagejpeg($image"test502.jpg"50);

echo 
"<IMG src='test50.jpg'></IMG>";

unlink("test50.jpg"); 
Das Bild wird nun aber nicht mehr angezeigt. Lasse cih unlink() weg, klappt alles. Der Ramen des Bildes ist noch sichtbar (mit rotem Kreuz gekennzeichnet, dass Bild fehlt).

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

Geändert von theAttentiveOne (12.11.2004 um 00:25:33 Uhr)
Mit Zitat antworten
  #2  
Alt 11.11.2004, 12:50:18
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Original geschrieben von theAttentiveOne
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.
Logisch.

Macht's nicht auch einfach ein Skript, dass alle Bilder, die älter als n Minuten sind löscht?
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 11.11.2004, 14:47:45
theAttentiveOne theAttentiveOne ist offline
Anfänger
 
Registriert seit: Feb 2004
Beiträge: 19
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
Mit Zitat antworten
  #4  
Alt 11.11.2004, 23:58:47
bazubi bazubi ist offline
Junior Member
 
Registriert seit: Jan 2004
Beiträge: 496
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.
Mit Zitat antworten
  #5  
Alt 12.11.2004, 00:21:30
theAttentiveOne theAttentiveOne ist offline
Anfänger
 
Registriert seit: Feb 2004
Beiträge: 19
Vielen Dank für Dein Antwort.

Leider funktioniert es aber auf diesem Wege nicht.

Wenn ich es wie folg mache:

PHP-Code:
imagejpeg($image"test2.jpg"100);

echo 
"<IMG src='test2.jpg'></IMG>";

flush();

sleep(5);

//unlink("test2.jpg"); 
wird einfach fünf Sekunden eine weisse Seite angezeigt (wegen sleep) und dann wieder die Seite ohne Bild. Die Daten sind wahrschenlich beim Browser, also der String mit dem IMG, aber wenn der Browser es zu darstellen versucht, ist das Bild dann wieder weg. Die Darstellung erfolgt ja erst nach dem Sleep() oder?

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

Geändert von theAttentiveOne (12.11.2004 um 00:25:14 Uhr)
Mit Zitat antworten
  #6  
Alt 12.11.2004, 08:43:30
Benutzerbild von Yzerman
Yzerman Yzerman ist offline
Member
 
Registriert seit: Dec 2002
Ort: Soest
Beiträge: 623
Yzerman eine Nachricht über ICQ schicken
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.
__________________
The internet is full of answers, even to never asked questions!
Mit Zitat antworten
  #7  
Alt 12.11.2004, 15:13:38
theAttentiveOne theAttentiveOne ist offline
Anfänger
 
Registriert seit: Feb 2004
Beiträge: 19
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
Mit Zitat antworten
  #8  
Alt 12.11.2004, 16:03:30
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
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?
Mit Zitat antworten
  #9  
Alt 13.11.2004, 16:33:37
theAttentiveOne theAttentiveOne ist offline
Anfänger
 
Registriert seit: Feb 2004
Beiträge: 19
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
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:05:08 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt