geX: Bilder in PHP-File laden und cachen

  
Hallo zusammen!  
  
Ich hoffe ich bekomme hier nicht direkt n paar um die Ohren... :-)  
  
Suche schon relativ lange nach einer Lösung, um Bilder so in den img-Tag zu laden, dass man den Pfad nicht mehr nachvollziehen kann.  
  
Ich bin auch so weit gekommen, dass ich mittels der header() funktion in php die Bilder laden und über <img src="download.php?[...]"> anzeigen kann.  
Es sollen allerdings in einer Schleife mehrere Bilder dargestellt werden.  
  
Und nun zu meinem Problem:  
  
Unglücklicherweise lädt der Browser die Bilder bei jeder Aktualisierung komplett neu.  
Und bei einer größeren Anzahl an schwereren Bildern wird das sehr schnell sehr nervig!  
  
(Und um die Frage direkt zu beantworten: Die häufige Aktualisierung der Seite ist Bestandteil der Funktionsweise)  
  
Der Grund für das neu-laden liegt wahrscheinlich darin, dass der Browser die Bilder nicht richtig cachet (cachen kann), weil es sich immer um die Datei download.php handelt.  
  
Ich habe schon mit mehreren Möglichkeiten experimentiert:  
<?php  
   Header("Content-type: image/jpeg");  
   header ("Content-Length: ".$filesize);  
   fpassthru($fp);  
   fclose($fp);  
?>  
  
oder  
  
[code lang=php]<?php  
    $pic=@imagecreatefromgif($absoluter_pfad);  
    Header("Cache-Control: public");  
    Header("Content-type: image/gif");  
    ImageGIF($pic);  
    ImageDestroy($pic);  
?>

Habe wirklich schon längere Zeit nach einer Lösung gesucht- vielleicht gibt es hier ja jemanden, der schon mal eine Lösung zu dem Problem gelesen / erarbeitet hat und mir helfen kann.

Danke schon mal im Voraus!

Gruß

GeX[/code]

  1. Hi geX,

    das hat jetzt mit Deiner Frage nicht direkt was zu tun, aber ich bin jetzt mal neugierig:

    Suche schon relativ lange nach einer Lösung, um Bilder so in den img-Tag zu laden, dass man den Pfad nicht mehr nachvollziehen kann.

    Warum willst Du das machen?

    Danke,
    viele Gruesse
    der Bademeister

    1. Hi Bademeister!

      Joa- das is ne längere Geschichte...

      Ich bastel derzeit an einer Online Platform auf der jeder sein eigenes, persönliches Profilverzeichnis besitzt.
      Die Verzeichnisse sind versteckt.
      Und ich habe mir sehr viel Mühe dafür gegeben, dass das auch so bleibt ;-)

      Wäre natürlich blöd, wenn die Bilder da alles kaputt machen würden, indem sie den absoluten Pfad preisgeben :-)

      So- und - hast du ne Idee :-P

      Hi geX,

      das hat jetzt mit Deiner Frage nicht direkt was zu tun, aber ich bin jetzt mal neugierig:

      Suche schon relativ lange nach einer Lösung, um Bilder so in den img-Tag zu laden, dass man den Pfad nicht mehr nachvollziehen kann.

      Warum willst Du das machen?

      Danke,
      viele Gruesse
      der Bademeister

      1. Wäre natürlich blöd, wenn die Bilder da alles kaputt machen würden, indem sie den absoluten Pfad preisgeben :-)

        So- und - hast du ne Idee :-P

        Nicht so richtig, ehrlich gesagt. Ich habe eben mal ein bisschen rumgespielt bei einer Website von mir und versucht, ob es was ändert, wenn Du bei dynamischen Bildern von Hand Header sendest bzgl. Cache-Control. Bin da aber noch nicht wirklich zu einem Ergebnis gekommen leider...

        Aber ich frage mich was anderes. Wenn Du Dein "bild.php?..." (oder wie es noch gleich hieß), lädtst, das Dir das Bild zurückgibt, dann musst Du doch per GET ohnehin einen eindeutigen Identifier von dem Bild mitgeben, damit das Skript das Bild findet. Wieso speicherst Du das Bild nicht unter dem Identifier in einem zentralen Verzeichnis, anstatt es in dem geheimen User-Verzeichnis zu speichern? Wenn Du es eh nie aus dem User-Verzeichnis aufrufen willst, gibt es doch auch nicht wirklich einen Grund, warum es da liegen sollte.
        Oder?

        Viele Grüße
        der Bademeister

        1. Wenn Du es eh nie aus dem User-Verzeichnis aufrufen willst, gibt es doch auch nicht wirklich einen Grund, warum es da liegen sollte.

          Oder?

          Doch doch!
          Die Benutzer wollen ja ihre Bilder aufrufen!

          Das Projekt wird, wennns mal fertig ist, eine multifunktionale Platform.

          Bislang gibt es aber nur das Profilverzeichnis, auf das der Benutzer Zugriff hat.
          Den Zugriff bekommt man über einen integrierten Filebrowser, der auch die Möglichkeit bietet, Verzeichnisse in Thumbnail- oder Fotoalbum-Ansicht anzusehen.

          Und genau da liegt die Schwierigkeit.
          Die Bilder in der Fotoalbum-Ansicht werden halt immer komplett neu geladen.

          Und bei 50 hochauflösenden Fotos wartet man halt gut und gerne n paar Minütchen.
          Das will ich vermeiden.

          Aber schön, dass du dich mit dem Thema beschäftigst.
          Irgendwie scheinst du mir auch der einzigen zu sein :-(

          ...

          Gruß

          geX

  2. Keiner ne Idee??

  3. Hello,

    Suche schon relativ lange nach einer Lösung, um Bilder so in den img-Tag zu laden, dass man den Pfad nicht mehr nachvollziehen kann.

    Zum Zeitpunkt des Requests, der durch das Parsen des ausgelieferten Dokumentes vom Browser ausgelöst wird, sollte die Ressource schon dort zu finden sein, wie sie angegeben wird im <image>-Element.

    Wenn sie allerdings vollständig ausgelifert wurde, könnte sie allerdings ungültig werden.

    Wenn Du also einen Mechanismus baust, der auf dem Host Deines HTTP-Servers einen symbolischen Link erzeugt auf das eigentliche File und dann in das Dokumentr diesen sLink als Ressource einsetzt anstelle der eigentlichen, dann kannst Du den nach erfolgter Auslieferung löschen lassen und schon ist die Ressource kein zweites Mal unter diesem Pfad zu finden.

    Einfacher geht es bestimmt mit dem Rewrite-Modus, einem dahinterliegenden Script und einer Datenbank.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de