Bild aus mySQL DB ausgeben -Problem-

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

  • Bild aus mySQL DB ausgeben -Problem-

    Hallo an Euch,

    Ich habe ein seltsames Problem:
    Ich habe mein Script soweit das ich Bilder in meine mySQL Datenbank abspeichern kann. Das funktioniert auch soweit alles.
    Jetzt gebe ich mir die Bilder Anhand einer ID aus!
    Im Internetexplorer funktioniert das auch, und ich sehe das was ich sehen will - ein Bild -

    Wenn ich mir aber nun das gleiche script (Ausgabe des Bildes) im Netscape oder Firefox anschaue, dann bekomme ich folgendes "Bild"

    ÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿà
    ÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿà
    ÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàv
    ÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿà
    ÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿàÿØÿà
    etc

    eine lange Leiste nur mit so komischen Zeichen.
    PS: Ich habe die eben kopiert, sind ca. 100 Zeilen, aber er kopiert nur "ÿØÿà" ...
    Naja, Ihr könnt Euh sicher vorstellen wie das aussiehst!

    Meine Frage ist, warum netscape das Bild falsch interpretiert, und der Internetexplorer das Bild richtig anzeigt!?
    it das ein allgemeines Problem oder muss man nur was im netscape umstellen (und Firefox)

    Ich wäre Euch für Eure Hilfe sehr dankbar!

    Viele grüße tine

    EDIT:
    Jetzt gehts auch im InternetExplorer nicht mehr!!
    Wenn ich im mySQL -Front in die tabelle gehe seh ich das Bild im BLOB Feld "Bild"
    Aber wie gebe ich es mir richtig aus?

    Zuletzt geändert von tine_; 12.11.2004, 10:32.

  • #2
    Code zeigen, wie du das Bild an dem Browser übermittelst.

    Kommentar


    • #3
      Also:
      Ich speicher das Bild folgendermaßen ab:

      PHP-Code:
      $bild addslashes(fread(fopen($_FILES['datei']['tmp_name'], "r"), filesize($_FILES['datei']['tmp_name'])));
      $Name=$HTTP_POST_FILES['datei']['name'];
      $test mysql_query("UPDATE spieler SET bildname='$Name', bild='$bild' where id='$id'");
      $zahlmysql_insert_id();
      echo 
      "Der Name des Files ist ".$HTTP_POST_FILES['datei']['name']."<br>";
      echo 
      "Der Grösse des Files ist ".$HTTP_POST_FILES['datei']['size']."<br>";
      echo 
      "Der File ist vom Typ: ".$HTTP_POST_FILES['datei']['type']."<br>";
      echo 
      "Der Name des Files ist ".$HTTP_POST_FILES['datei']['name']."<br>";
      $dateiname=$HTTP_POST_FILES['datei']['name']; 
      und folgendermaßen lese ich es aus:

      PHP-Code:
      $zeiger=mysql_query("select bild from spieler where id='$nummer'");
      $ergebnis=mysql_fetch_array($zeiger);
      print 
      $ergebnis['bild']; 
      PS: Im Internetexplorer geht auch nicht mehr, gestern gings...

      Kommentar


      • #4
        du kannst doch nicht einfach so ein Bild an dem Browser senden, denn normalerweise sendet der Webserver Standardheader für html/text. Wenn du aber ein Bild senden möchtest, mußt das explizit sagen, in dem du die entsprechende Informationen per header sendest.

        Kommentar


        • #5
          um mir ein Bild aus der Datenbank anzeigen zu lassen, muss ich im Header des Scriptes, welches mir das Bild anzeigt, die Informationen per header senden?
          Gibst du mir ein tipp? :=)

          Kommentar


          • #6
            Du solltest dem Browser schon mitteilen was für einen Dokumententype er zu erwarten hat ... PHP setzt per Default

            Content-Type: text/html

            Setz' den entsprechenden Mimetype für das Bild ... fertig ...

            z.B. für JPG

            Content-Type: image/jpeg
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Link klicken, alles lesen (besonders die User Contributed Notes) und glücklich werden

              Kommentar


              • #8
                Ok, klingt logisch:
                Daher gibt er mir diese hyroglyphen (wird das so geschrieben? ) aus, welche im Feld Blob in der DB abgespeichert werden
                Nun sollte es also header("Content-Type: image/jpeg"); heissen, aber wo soll ich das denn hinpacken?
                Ich habe mein Script, in dem werden unter anderem verschiedene Daten aus der DB angetzeigt, und zu diesem angezeigten datensatz soll nun auch das Bild erscheinen.
                Wo definier ich denn, das dieses Feld ein Bild (jpg/gif etc) ist?

                Habe mir die Seite mal angeschaut, abe rnichts mit jpeg gefunden, und wie ich den header Befehl explizit einsetzen kann!

                Danke nochmals

                lg tine

                Kommentar


                • #9
                  Speicher den MimeType mit in der Datenbank ... ermitteln kannst Du denselben entweder beim Upload einer Datei ... $_FILES["wurst"]["type"] ... oder besser mit der Funktion getImageSize() ... in Verbindung mit der Funktion image_type_to_mime_type() letztere existiert allerdings erst ab PHP 4.3.0 ... musst Du sonst halt selber schreiben ... die notwendigen Info's findest Du in der Doku ...
                  carpe noctem

                  [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                  [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                  Kommentar


                  • #10
                    danke für deine Antwort, aber mein Wissen reich dafür nicht aus!
                    Dann muss ich mich mal dran setzten, und verschiedene Wege probieren.
                    Ich bin einer Anleitung gefolgt, wie man ein Bild in die Datenbank speichert, und anschließend wieder ausgibt...
                    Dort wurde aber nciht wegen Header gesagt, und das nervt mich jetzt, das man sowas ins Netz stellt

                    --> http://www.infos24.de/mysqle/handbuc...binaries.htm#3

                    Kommentar


                    • #11
                      seufz,... Annahme: du hast ein jpeg-Bild, mach mal so
                      PHP-Code:
                      $ergebnis=mysql_fetch_array($zeiger);
                      header('Content-Type: image/jpeg'); // <------------------
                      print $ergebnis['bild']; 
                      Ist das denn so schwer?
                      wie du sonst den MimeType ermittelt hat goth dir schon gezeitgt.

                      Kommentar


                      • #12
                        Ich will Euch ja nicht nerven, aber nach Deinem Thread her kommt folgende Fehlermeldung:
                        Die Grafik "http://localhost/test1/adm/spielerdetails.php" kann nicht angezeigt werden, weil sie Fehler enthält.

                        Das heisst ich weise ihm die Datei als Grafik zu!? Seh ich doch richtig, oder?

                        Kommentar


                        • #13
                          Das Beispiel ist echt arm ... aber es kann ja nicht jeder so gut sein wie die Leute hier bei PHP-Resource ...
                          carpe noctem

                          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                          Kommentar


                          • #14
                            aja, wenn das so ist lieber Goth, dann sag mir mal wo ich den Header hinzuschreiben habe! :=)

                            Kommentar


                            • #15
                              Original geschrieben von tine_
                              Ich will Euch ja nicht nerven, aber nach Deinem Thread her kommt folgende Fehlermeldung:
                              Die Grafik "http://localhost/test1/adm/spielerdetails.php" kann nicht angezeigt werden, weil sie Fehler enthält.

                              Das heisst ich weise ihm die Datei als Grafik zu!? Seh ich doch richtig, oder?
                              zeige Inhalt von spielerdetails.php.

                              @goth: wie meinen meinst du den Link von ihm?

                              Kommentar

                              Lädt...
                              X