Ankündigung

Einklappen
Keine Ankündigung bisher.

Bild aus einer Datenbank laden

Einklappen

Neue Werbung 2019

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

  • Bild aus einer Datenbank laden

    Hi,

    ich habe ein Script geschrieben, dass ein Bild in die Datenbank lädt.

    Das Problem ist, dass ich nicht genau weiß, wie ich eine Binärdatei nun auch als Bild ausgeben kann

    Dachte es würde ganz einfach mit echo funktionieren....

    Es gibt so ein Script. Die Sache ist nur, dass ich nicht verstehe, wie das Script funktioniert und ich daher nicht implementieren kann. Der Anfang ist klar, aber was hat es mit dem
    Code:
    echo $data;
    auf sich?

    Code:
    <?php
    
    // getdata.php3 - by Florian Dittmer <dittmer@gmx.net>
    // Example php script to demonstrate the direct passing of binary data
    // to the user. More infos at http://www.phpbuilder.com
    // Syntax: getdata.php3?id=<id>
    
    if($id) {
    
        // you may have to modify login information for your database server:
        @MYSQL_CONNECT("localhost","root","password");
    
        @mysql_select_db("binary_data");
    
        $query = "select bin_data,filetype from binary_data where id=$id";
        $result = @MYSQL_QUERY($query);
    
        $data = @MYSQL_RESULT($result,0,"bin_data");
        $type = @MYSQL_RESULT($result,0,"filetype");
    
        Header( "Content-type: $type");
        echo $data;
    
    };
    ?>
    Der Autor sagt weiter, dass man das Bild so anzeigt: [img]getdata.php3?id=3[/img]

    Ich frage mich nur, was ist das Ergebnis von dem oberen Script, also wieso kann ich nicht gleich <img src=$data> machen. Oder liegt es an dem $type, dass das Bild angezeigt wird

    Hoffe ich bekomme noch die Erleuchtung

    Gruss
    Nima


  • #2
    ich hab leider keine lösung für dein problem, aber etwas interessantes zum lesen

    http://php-faq.de/q/q-db-blob.html
    Gruß
    David

    Kommentar


    • #3
      danke, aber das habe ich auch schon gelesen....

      Kommentar


      • #4
        Ich frage mich nur, was ist das Ergebnis von dem oberen Script, also wieso kann ich nicht gleich <img src=$data> machen. Oder liegt es an dem $type, dass das Bild angezeigt wird
        so wie ich das sehe ist $data noch keine ausgabe. wenn du ein bild aus der datenbank haben möchtest musst du doch zunächst angeben welches. unter der id sind weitere angaben zum bild gespeichert (filename, filesize, filetype).
        Gruß
        David

        Kommentar


        • #5
          das dachte ich mir auch. aber ich habe das script mal getestet und bei ihm reicht einfach das echo zur Ausgabe des Bildes aus???

          Code:
              $query = "SELECT bild from produkte where id=".$id;
              $result = @MYSQL_QUERY($query);
          
              $data = @MYSQL_RESULT($result,0,"bild");
              echo $data;
          Genau das mache ich doch auch in meiner Schleife
          Code:
          $query = mysql_query("SELECT id, `name` , `status` , `preis1`, bild FROM produkte WHERE status != '1'");
          
          
          echo "<table border=0 cellspacing=0 cellpadding=10><tr>";
          // Ausgabe der Datensätze
          $count = 0;
          while (($daten = mysql_fetch_assoc($query))){
            echo "<td>".$daten['bild']."</td>";
          }//Ende der Schleife
          
          echo "</tr></table>";
          Wenn ich nun $daten['bild'] per echo ausgebe, bekomme ich den Binärcode und nicht das Bild. Im oberen Script zeigt er aber das Bild an?

          Ich verstehe nicht genau den Unterschied der beiden Scripte. Es muss wohl etwas mit dem mysql_result zu tun haben.....

          Gruss
          UNknown

          Kommentar


          • #6
            ich weiß nun woran es liegt. Wenn man das Script aufruft, erkennt der Browser, dass es sich um eine Datei handelt und gibt diese Datei aus. Es ist als würde man die Datei erzeugen.

            Meine untere Funktion ist Teil eines größeren Scriptes, bei dem unteranderem eine HTML Seite generiert wird. Und so kann man die Datei nicht einfach mit echo ausgeben, wie im oben beschrieben.

            Man muss das über <img src=bild.php?id=1> machen und siehe da es geht. Evtl. gibt es auch eine etwas einfachere Methode, doch ich habe bisher nichts gefunden

            Gruss
            Unknown

            Kommentar

            Lädt...
            X