cache von Bildern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • cache von Bildern

    Habe gerade meine Abteilung vom hochladen und ändern von Bildern fertig.
    Stelle aber gerade fest, das ich was falsch gemacht habe.

    Mein Problem:

    Wenn ich z.B. Bild 1 hochlade würd es angezeigt.
    Danach kann man es, auf wusch, mittels einfachen link?entfernen=Bild_1, wieder löschen.
    Will man jetzt wieder ein Foto für Bild 1 hochladen erscheint das Foto was man zuerst hochgeladen hat.

    Wenn ich denn auf aktualisieren klicke, sehe ich erst das neue Foto.

    Daraus schließe ich das das Bild 1 im cache ist?

    Wie verhinder ich das?

    Oder soll ich das nicht verhindern, sondern den cache nur leeren wenn ich Bild 1 lösche, damit wenn ich ein neues hochlade, es auch gleich angezeigt würd? Und wenn, wie löscht man den cache?

    Schon eine doofe Sache wenn man den cache nicht sehen kann...
    Gut geraten ist halb gewußt.

  • #2
    Ich hatte das Problem auch mal:

    Binde das Bild mit
    PHP-Code:
    <img src="Pfad/Bild.jpg?<?php echo time(); ?>" alt="Bild" />
    ein.

    Da sich time() ständig verändert wird jedes Mal das Bild neu geladen

    PS: über die Suche müsstest du auch meinen damaligen Thread noch finden

    EDIT:
    das ist der Link
    Zuletzt geändert von Meillo; 02.02.2005, 17:32.
    [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

    [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

    [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
    (from here)

    Kommentar


    • #3
      Danke.
      Klingt eigendlich ganz gut, aber ob das so einfach ist.
      Wäre schön, müßte ich probieren.

      ( Hatte gesucht, aber war nischt brauchbares dabei, danke für den link. )
      Zuletzt geändert von martinm79; 02.02.2005, 17:39.
      Gut geraten ist halb gewußt.

      Kommentar


      • #4
        Ja, danke hat funktioniert!

        PHP-Code:
                    
            
        // prüfen ob das bild existiert
            
        if (file_exists($bild)) {
                return 
        "<img src=\"".$bild."?".microtime()."\">";
            } else {
                return 
        "<img src=\"".$pfad."gif".UNIX."kein_bild.gif?".microtime()."\">";
            } 
        Gut geraten ist halb gewußt.

        Kommentar


        • #5
          verursacht aber ne menge extra traffic, da das bild jedesmal neugeladen werden muss


          An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

          Kommentar


          • #6
            7 kb ist die datei groß.
            Aber anders kann man es doch nicht lösen, oder?
            Also laufen tuts jedendfals jetzt sehr gut.
            Gut geraten ist halb gewußt.

            Kommentar


            • #7
              ... du könntest höchstens als "Zusatz" nicht microtime() nehmen, sondern einen Wert der nur beim Ändern des Bildes verändert wird.
              Dann wird das Bild auch nur neu geladen wenn es geändert wurde.
              Musst den Wert dann halt noch in der DB speichern oder so...

              @Max: kommt auch immere darauf an wie viele Hits die Seite bekommt.
              Wenn das nur ein Admin-Bereich einer "Kleinen" Website ist und 5 Hits pro Tag hat, dann schlägt das nicht ins Gewicht ....
              [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

              [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

              [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
              (from here)

              Kommentar


              • #8
                ... du könntest höchstens als "Zusatz" nicht microtime() nehmen, sondern einen Wert der nur beim Ändern des Bildes verändert wird.
                Dann wird das Bild auch nur neu geladen wenn es geändert wurde.
                Musst den Wert dann halt noch in der DB speichern oder so...
                Ja, die richtung finde ich nicht schlecht.
                Aber einen Wert der nur beim ändern des Bildes verändert wird?
                Mhh...z.b.?
                Irgendwelche Daten vom Bild auslesen und (wie z.b.genaue Größe oder oder....) und diese dann ranhängen?

                Wie chache und traffic zusammenhängt weiß ich zwar nicht....
                Aber dieser teil ist zwar nur im admin bereich.... aber wenn man sich ausrechnet das jeder admin ein paar bilder hat und diese ändert und es nicht nur einen admin gibt kann da schon was zusammen kommen.
                Und wenn es die möglichkeit gibt, will ich schon wenig traffic verursachen.
                Gut geraten ist halb gewußt.

                Kommentar


                • #9
                  Original geschrieben von martinm79
                  Irgendwelche Daten vom Bild auslesen und (wie z.b.genaue Größe oder oder....) und diese dann ranhängen?
                  habs noch nie selbst probiert aber das hört sich gar nicht schlecht an

                  Original geschrieben von martinm79
                  Wie chache und traffic zusammenhängt weiß ich zwar nicht....
                  Ein Bild das im Cache ist wird nicht vom Server geladen. Zum Traffic zählt die Datenmenge aller Dateien die auf den Server oder vom Server übertragen werden. (je nach Provider gibts auch Abweichungen).
                  Wenn das Bild aus den Cache geladen wird verursacht es somit keinen Traffic.

                  Bsp: Bild mit 10KB, 10 Aufrufe der Seite pro Tag:

                  Mit Cache: Das Bild wird nur einmal vom Server geladen dann immer aus dem Cache.
                  Traffic den das Bild verursacht im Monat: 10KB

                  Ohne Cache: Das Bild wird jedes Mal vom Server geladen.
                  Traffic den das Bild verursacht im Monat: 30*10*10KB = 3MB

                  WICHTIG: Dieses Bsp. setzt voraus, dass alles Aufrufe von einem Rechner aus geschehen.
                  Jeder Rechner, der das Bild noch nicht im Cache hat muss es nat. erst vom Server laden, um es dann im Cache abzuspeichern.
                  (Wenn man die Seite akualisiert [F5] wird AFAIK auch vom Server geladen.)
                  [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                  [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                  [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                  (from here)

                  Kommentar


                  • #10
                    Hab mich zwar noch nicht damit beschäftig aber jetzt ist alles klar.
                    Danke...
                    Ja, denn muß ich wohl auch dafür sorgen das einige Bilder im chache bleiben.
                    Und einige ebend nicht.
                    Na ich werd mal sehn ob sich das machen läst, mit dem unterscheiden der einzelnen Bilder.
                    Gut geraten ist halb gewußt.

                    Kommentar


                    • #11
                      So, hab da mal was geändert.

                      Sieht jetzt bei mir so aus:

                      PHP-Code:
                          if (file_exists($bild)) {
                              return 
                      "<img src=\"".$bild."?".filemtime($bild)."\">";
                          } else {
                              return 
                      "<img src=\"".$pfad."gif".UNIX."kein_bild.gif?".filemtime($pfad."gif".UNIX."kein_bild.gif")."\">";
                          } 
                      Ich hänge jetzt nicht time() hintenran, sondern filemtime.

                      Laut PHP Handbuch:
                      (PHP 3, PHP 4 )

                      filemtime -- Liefert Datum und Uhrzeit der letzten Dateiänderung

                      Kann das mit dem chache nicht kontrollieren, aber im quelltext bleiben jetzt die $_GET Parameter immer gleich und die bilder wechseln sich auch gleich beim löschen.

                      (NICHT VERGESSEN! Bei filemtime muß man noch das Bild angeben was er bestimmen soll! )
                      Gut geraten ist halb gewußt.

                      Kommentar

                      Lädt...
                      X