PNG aus DB in GD Lib Funktion

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

  • PNG aus DB in GD Lib Funktion

    Hallo zusammen,

    habe ein Problem und ich hoffe jemand hier kann auch zur späten Stunde noch helfen:

    Ich speicher verschiedene PNG-Bilder in BLOGs in der DB. Ich habe ein Script geschrieben,um die Bilder auszugeben - dort wird auch der richtige Header angezeigt:

    picture.php
    <?
    require_once("classes/Bild_class.inc.php");

    if (isset($_GET["id"]))
    $id = $_GET["id"];
    else
    $id = 1;

    $bild = new Bild($id);
    $grafik = $bild->getGrafik();
    $type = $bild->getTyp();

    Header("Content-Type: $type");

    echo $grafik;

    ?>

    Nun versuche ich ein Bild der DB in einer Funktion anzuwenden, um darauf dynamisch Bilder zu kopieren. Das klappt auch so perfekt mit Bildern, welche auf dem Server und nicht in der DB liegen:

    <?php
    $sourcefile = "../picture.php?id=28";
    ....BLABLABLA....
    $sourcefile_id = imageCreateFromPNG($sourcefile);
    ....BLABLABLA....

    Naja, als Fehler bekomme ich Folgendes ausgespuckt, obwohl das Verzeichnis DEFINITIV richtig ist. Wenn ich das "?id=28" weglasse, findet er das "Bild", sagt aber das kein korrektes PNG vorliegt:

    Warning: imagecreatefrompng(../picture.php?id=28): failed to open stream: No such file or directory in /www/documents/www.4ball.de/neu/classes/Inventory_class.inc.php on line 104

    Ich versteh die WElt nicht mehr. Auch wenn ich die ID per Session übergebe funktioniert es nicht. im browser wird das pciture.php immer wudnerbar angezeigt. Aber in GDLib kann ich das dann nicht nutzen und er meckert, weil es kein PNG wäre.....aber es ist eins!!!


    Ciao
    Benny

  • #2
    Was steht denn in deiner Datei picture.php ? bzw was gibt diese Datei denn "zurück" ?

    Gruss

    tobi

    EDIT:

    Sorry ist schon spät und ich habe nicht gesehen, dass du es ja oben berits gepostet hast

    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Lass dir mal $type ausgeben z.B. mittels var_dump() und schaue ob die header korrekt sind.

      Gruss


      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        hab ich schon gemacht der mime type ist "image/png"

        Kommentar


        • #5
          Probier mal Folgendes(steht in den User Notes im Manual )
          PHP-Code:
          [..]
          $type 'image/x-png';
          Header("Content-Type: $type");
          echo 
          $grafik
          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Re: PNG aus DB in GD Lib Funktion

            Original geschrieben von bennybraun
            Ich versteh die WElt nicht mehr.
            du verstehst offenbar 'ne menge nicht.
            $sourcefile = "../picture.php?id=28";

            Naja, als Fehler bekomme ich Folgendes ausgespuckt, obwohl das Verzeichnis DEFINITIV richtig ist. [...]

            Warning: imagecreatefrompng(../picture.php?id=28): failed to open stream: No such file or directory
            "../picture.php?id=28" kannst du so nicht öffnen, weil es keine datei mit diesem namen gibt - "?id=28" wird hier mit zum dateinamen gezählt.

            solche parameterübergaben gibt es im HTTP-umfeld - aber in dem befindest du dich hier nicht, weil du auf dem lokalen dateisystem arbeitest.
            Wenn ich das "?id=28" weglasse, findet er das "Bild", sagt aber das kein korrektes PNG vorliegt
            natürlich, weil du damit höchstens dein ungeparstes script einliest - also nicht ausgeführten PHP-code;
            dass das keine gültigen PNG-daten sind, sollte klar sein.

            wenn schon, müsstest du über HTTP gehen, um dein bild einzulesen.

            im browser wird das pciture.php immer wudnerbar angezeigt. Aber in GDLib kann ich das dann nicht nutzen und er meckert, weil es kein PNG wäre.....aber es ist eins!!!
            nein, ist es definitiv nicht, siehe oben.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              immer noch........ jetzt hab ich auch noch bemerkt, dass in den eigenschaften des bildes im browser der alternativtext gleich "Die Grafik "picture.php" kann nicht angezeigt werden, weil sie Fehler enthält." ist. Ich versteh das nicht.......

              Kommentar


              • #8
                Hallo,

                hast du wahsaga's Post grad eben nicht gelesen, oder habt ihr euch da grad überschnitten?
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  hatten uns überschnitten.. aber wie lade ich die Bilder denn extern über http bzw was für eine Lösung könnt ihr mir vorschlagen?
                  Zuletzt geändert von bennybraun; 26.07.2005, 10:13.

                  Kommentar


                  • #10
                    Original geschrieben von bennybraun
                    aber wie lade ich die Bilder denn extern über http?
                    http://www.deineadresse.xy/blubb/picture.php?id=28
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      hmmm. also er gibt mir dann dieses hier aus:

                      imagecreatefrompng(): URL file-access is disabled in the server configuration

                      benutzt der dann da irgendwelche fopen funktionen oder dergleichen, da diese bei uns am Server abgeschaltet sind.

                      Kommentar


                      • #12
                        Re: PNG aus DB in GD Lib Funktion

                        Original geschrieben von bennybraun
                        Ich speicher verschiedene PNG-Bilder in BLOGs in der DB.
                        wenn die bilder aus der db = datenbank kommen, was fummelst du denn da im "dateisystem" rum? imagecreatefromstring() wäre eigentlich dein freund.

                        ausserdem würde imagecreatefrom*() einen (absoluten) pfad erwarten und keinen url.
                        Kissolino.com

                        Kommentar


                        • #13
                          Re: Re: PNG aus DB in GD Lib Funktion

                          Original geschrieben von Wurzel
                          ausserdem würde imagecreatefrom*() einen (absoluten) pfad erwarten und keinen url.
                          doch, das könnte eben auch bilder über einen URL öffnen - wenn es nicht in der sevrer konfig generell deaktiviert wäre.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            okay, mit der createfromstring funtkion klappt es. VIELEN VIELEN DANK!!!!!!!!!!

                            Kommentar

                            Lädt...
                            X