Grafiken als blob aus db anzeigen

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

  • Grafiken als blob aus db anzeigen

    Hallo,

    habe ein Projekt mit 2 db's. In einer stehen diverse Daten, u.a. ein Bildname, in der zweiten sind die Bilder als mediumblob als binärdaten abgelegt.

    In einer Seite meiner Website werden Daten aus db1 dargestellt und darunter das Bild, dessen Name aus db1 kommt und die binärdaten aus db2. Diese werden aus der db ausgelesen und in ein temporäres file geschrieben, dieses wird dargestellt. Im endeffekt sieht das skript gerüst in etwa so aus:

    // Bild auslesen
    $sql = "SELECT FileName, MimeType, FileData FROM pers_bilder WHERE
    FileName = '$bild_1'";
    $result = mysql_query($sql, $verbindung);
    $row = mysql_fetch_object($result);
    $bd1 = $row->FileData;
    $fd1 = fopen('temp1', "w+");
    fwrite($fd1, $bd1);
    fclose($fd1);
    mysql_free_result($result);
    mysql_close($verbindung);
    // Bild darstellen
    echo "<img src=\"temp1\"/

    Nun ist es so, dass ich die temporäre Datei immer wieder neu verwende, sprich ein neues Bild überschreibt das vorhergehende. Wenn ich aber nun mit der selben Seite zum nächsten Datensatz zwecks Anzeige springe, aktualisiert sich das Bild nicht - liegt an den IE Einstellungen, dass weiß ich sicher.

    Ich kann nicht alle Besucher meiner Website zwingen die EInstellungen ihres IE zu ändern, deshalb suche ich nach einer Möglichkeit, die generierte temporäre Datei wieder zu löschen, allerdings finde ich keinen Befehl wie zB "fdel" oder so.

    Hat wer ne Idee?
    Gruß Alexander

  • #2
    Pack die Bildauslese und die Display funktion in eine pic.php
    Der Aufruf geht dann über den <img src="pic.php?ID=">
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      genau. das ist eh der beste weg. das schreiben einer temp-datei macht hierbei keinen sinn.

      btw. eine datei kann man mit unlink() entfernen.

      und falls du das mit der db und den bilder noch nicht verstanden haben solltest, hier schon mal die datei zum anzeigen der bilder...
      das musst du noch für dich anpassen... zugänge, feldname, usw.

      PHP-Code:
      <?php

        
      if ($id=="") { $id "0"; }

        
      /* Standard-Include fuer allgemeine Definitonen */
        
      include ( "../admin/config/general.inc.php" );
        include ( 
      $root_path "/admin/config/database.inc.php");

        
      $result MYSQL_QUERY "SELECT bin_data,filetype FROM AllImages WHERE id = $id") ;
        if ( 
      mysql_num_rows($result) == ) {
          
      $zeile=mysql_fetch_array($result);

          
      header ("Content-type: " $zeile["filetype"]);
          echo 
      $zeile["bin_data"];

        }

      ?>
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Guten Morgen,

        das mit unlink() war der Hinweis den ich brauchte. Ich lösche jetzt so einfach die Dateien die im jeweiligen Skript neu angelegt werden vorher.

        Danke nochmals
        CU
        Alexander

        Kommentar


        • #5
          ich würde dir von der unlink-variante ABRATEN !!!!

          mache es so, wie MelloPie und ich gepostet haben. damit wirst du wesentlich glücklicher werden.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Btw, wenn Du die Datei auf dem Server löschst wirst Du evt immer noch das Brauser caching Problem haben...
            Das kannst Du vielleicht mit den richtigen HEadern ausschalten.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar

            Lädt...
            X