Prob beim auslesen von Bildern aus MySql

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

  • Prob beim auslesen von Bildern aus MySql

    Hallo zusammen

    Hab schon mal gesucht, aber nichts passendes gefunden.

    Ich speichere Bilder in einem Blob ab. Scheint zu klappen.

    Das auslesen geht wie folgt:

    echo "<image src='getpic.php3?ID=$id1'>";

    get pic sieht wie folgt aus:

    PHP-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 [url]http://www.phpbuilder.com[/url]
    // Syntax: getdata.php3?id=<id>

    if($id) {

        
    // you may have to modify login information for your database server:
        
    MYSQL_CONNECT("localhost","root","1234567890");

        
    mysql_select_db("base");

        
    $query "select picture,filetype from anzeigen where id=$id";
        
    $result MYSQL_QUERY($query);

        
    $data MYSQL_RESULT($result,0,"picture");
        
    $type MYSQL_RESULT($result,0,"filetype");

        
    //header("Content-Disposition: attachment; filename=$filetype");
        
    header("Content-type:  $filetype");
        print 
    base64_decode($data); 
        

    };
    ?> 
    </body>
    </HTML>
    Statt des Bildes wird allerdings nur ein Platzhalter angezeigt.

    Hatt jemand sowas schon gehabt ?

    Gruß Micha

  • #2
    1. nimm mal die html tags am ende raus, die sind sinnlos
    2. debug halt mal nimm die header zeile in comment und füge mal ein paar mysql_error() ein...
    3. in der header zeiele verwendest du eine ungesetzte variable

    achja und dein script geht von register_globals = on aus
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hi danke erst mal.

      Die HTML Tags entspringen einer "Verzweiflungstat" ob mit oder ohne hat keine Auswirkung.

      mysql_error() keine Auswirkung = keine Fehler.

      Variable geändert.

      Register globals on ? - böse Falle, möchte ich eigentlich nicht.

      Kurzum, bisher leider keine Veränderung.

      Gruß Micha

      Kommentar


      • #4
        Statt des Bildes wird allerdings nur ein Platzhalter angezeigt.
        definiere Platzhalter.

        warum schreibst du einige fkt-namen in roßbuchstaben?

        absolut keine ausgabe oder so?

        Kommentar


        • #5
          nur mal so am rande:
          $id != $ID&nbsp;&nbsp;&nbsp; => <image src='getpic.php3?ID=$id1'>
          Kissolino.com

          Kommentar


          • #6
            @TobiaZ

            Wenn das ergebnis abgerufen wird, dann erhalte ich dort wo das Bild
            angezeigt werden soll lediglich einen Rahmen 28*30 Pixel.

            (typische Darstellung wenn keine Grafik vorhanden ist. )

            Wenn ich mir die Eigenschaften ansehe(rechte Maustaste), dann sind
            folgende Werte abzulesen:

            Adresse(Url) : http://vh2/getpic.php?id=38
            Typ und Grösse sind nicht verfügbar.

            Die Anzeige der variablen file_size, file_typ und file_name bringt ein korrektes Ergebnis.

            Dateigröße = 3181
            Datei-Typ = image/pjpeg
            Datei-Name = bus1.jpg

            Groß- Kleinschreibung hab ich vereinheitlicht, sollte aber auf dem Windows-
            System wo es jetzt läuft, kaum eine Auswirkung haben.

            Ich hab das Gefühl, das da beim abspeichern was schief läuft.
            Das schau ich mir doch besser nochmal genauer an.

            Gruß Micha

            Kommentar


            • #7
              Ne, also beim speichern find ich nix.

              Ich speicher wie folgt ab:

              PHP-Code:
              If ($gesendet) {
              $type $_FILES['file']['type']; 
              $size $_FILES['file']['size'];
              $name $_FILES['file']['name'];
                  if(
              $file!="none" && $type=="image/gif" or $file!="none" && $type=="image/pjpeg"){
                      if(
              $size<15000){
                      
              $db mysql_connect('localhost','root','123456');
                      
              //$data = base64_encode(fread(fopen($file,"rb"),filesize($file)));
                      
              $data base64_encode(fread(fopen($file,"rb"),$size));
                      
              $sqlab "insert anzeigen";
                      
              $sqlab .= "(tausch,bus,kat,plz,kurz,lang,preis,mail,picture,filetype)values";
                      
              $sqlab .= "('$tausch','$bus','$kat','$plz','$kurz','$lang','$preis','$mail','$data','$type')";
                      
              mysql_db_query("bulli"$sqlab);
                      
              $num mysql_affected_rows();
                      If (
              $num>0)
                      
              $anzeige ="Ihr Datensatz wurde hinzugefügt !";
                      else
                      {
                      
              $anzeige "Da ist was schief gegangen";
                      }
                      
              mysql_close(); 
              Wenn ich nur mit getpic.php auslese:

              PHP-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 [url]http://www.phpbuilder.com[/url]
              // Syntax: getdata.php3?id=<id>

              if($id) {

                  
              // you may have to modify login information for your database server:
                  
              mysql_connect("localhost","root","123456");

                  
              mysql_select_db("bulli");

                  
              $query "select picture,filetype from anzeigen where id=$id";
                  
              $result mysql_query($query);

                  
              $bild mysql_result($result,0,"picture");
                  
              $type mysql_result($result,0,"filetype");

                  
              header("Content-type: $type");
                  echo 
              "($type)";
                  print 
              base64_decode($bild); 

              };
              ?>
              Dann erhalte ich folgendes ergebnis:

              Zuerst $type und dann nix mehr.

              Die Anzahl der Bytes in der DB wächst aber mit jedem Bild entsprechend.

              Also ich weiss im moment nicht mehr was abgeht.
              Seh ich vor Bäumen den Wald nicht mehr ?

              Micha
              Zuletzt geändert von micha-cu; 13.11.2003, 20:11.

              Kommentar


              • #8
                also irgendwie ist dein code zum eintragen nicht wirklich gut.
                Du springst zwischen globals on und globals off rum machst klammern und mal keine (--> Stil)
                insert into sollte es heissen, etc...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  Danke, aber bringt das etwas zum Problem ?

                  ob "insert into adressen" oder "insert adressen" , gibts da ein problem ?
                  Ich lern gerne dazu, aber was soll ich jetzt mit Deiner Aussage anfangen ?

                  Micha

                  Kommentar


                  • #10
                    uuups doppelt.

                    Aber als Ps.

                    Klar ist in dem code jetzt einiges ungereimt, hab alles mögliche probiert,
                    und das ist halt der derzeitige Status.


                    Micha
                    Zuletzt geändert von micha-cu; 13.11.2003, 20:34.

                    Kommentar

                    Lädt...
                    X