Ankündigung

Einklappen
Keine Ankündigung bisher.

Image aus Datenbank auslesen und sichtbar machen.

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Es ergibt immer ein kleines Quadrat auf einem komplett schwarzen Monitor, egal welches Bild ich hochlade

    Das ist der upload Code:

    PHP-Code:
    <?php
    session_start
    ();
    include(
    "database.php");

    if(isset(
    $_POST['submit']) && isset($_FILES['file']) && ($_FILES['file']['size'] == 0)) {

      
    $name $_POST['name'];
      
    $preis $_POST['preis'];

      
    $statement $pdo->prepare("INSERT INTO  produkte (id, name, preis) VALUES ('', :name, :preis)");

    $result $statement->execute(array(':name' => $name':preis' => $preis));


        
    header("Location: spirituosen.php");

      }else if(isset(
    $_POST['submit']) && ($_FILES['file']['size'] !== 0)) {


        
    $imagedata =addslashes(file_get_contents($_FILES['file']['tmp_name']));
        
    $tmp_name getimageSize($_FILES['file']['tmp_name']);

      
    $name $_POST['name'];
      
    $preis $_POST['preis'];

       
    $statement $pdo->prepare("INSERT INTO  produkte (id, name, contenttype, imagedata, preis) VALUES ('', :name, :contenttype, :imagedata, :preis)");

    $result $statement->execute(array(':name' => $name':contenttype' => $tmp_name['mime'], ':imagedata' => $imagedata':preis' => $preis));

      
    header("Location: spirituosen.php");}

    ?>
    liegt es vielleich daran ?

    Kommentar


    • #32
      liegt es vielleich daran ?
      Was soll das, sind wir hier im Fernsehquiz?

      Aus Beitrag #13
      PHP-Code:
        $sql "SELECT id, name, preis FROM produkte";
      $result $pdo->query($sql);
      foreach (
      $result as $row): 
      Da wird eine Fehlermeldung erzeugt, dies verhindert natürlich die Bildausgabe wenn davor eine Fehlermeldung ausgegeben wird.
      Das erst mal zum grundlegendem Problem warum kein Bild ausgegeben wird.

      du erhältst nämlich ein Objekt zurück und kein Array.

      Abhilfe
      ändere das $result = $pdo->query($sql); zu
      $result = $pdo->query($sql, PDO::FETCH_ASSOC);

      Kommentar


      • #33
        Was soll das addslashes()?

        Und warum machst du es nicht so wie es im PHP-Handbuch steht?

        http://php.net/manual/de/pdo.lobs.php

        Kommentar


        • #34
          Ich frage mich an dieser Stelle warum du die Bilder überhaupt in der DB speicherst, Hast du den Code irgendwo her kopiert oder wie kommst du darauf.
          Keine Shopsoftware die ich kenne macht das so.

          Kommentar


          • #35
            Zitat von protestix Beitrag anzeigen
            Ich frage mich an dieser Stelle warum du die Bilder überhaupt in der DB speicherst, Hast du den Code irgendwo her kopiert oder wie kommst du darauf.
            Keine Shopsoftware die ich kenne macht das so.
            Ja ich hab den Code aus einem anderen Projekt von mir kopiert und angepasst
            Außerdem benutze ich keine Shopsoftware, sondern ich werde ein eigenes Shopsystem bauen.

            Ich werde einfach den Code für das Bild neu schreiben und mich wieder mi Ergebnissen melden.

            Würde mich trotzdem über Hilfe freuen.

            Kommentar


            • #36
              Zitat von king-ich Beitrag anzeigen
              Würde mich trotzdem über Hilfe freuen.
              Ich bin irritiert. Denkst du du hast in den vorangegangenen 34 Beiträgen keine Hilfe erhalten?

              Kommentar


              • #37
                Du weißt, dass ich das nicht so meine!

                EDIT: Würde mich trotzdem über weitere Hilfe freuen.

                Zitat von protestix Beitrag anzeigen
                Ich bin irritiert. Denkst du du hast in den vorangegangenen 34 Beiträgen keine Hilfe erhalten?
                Es waren ja nicht nur die letzten 34 Beiträge.

                Ich vergess das nicht.

                Kommentar


                • #38
                  Zitat von hellbringer Beitrag anzeigen

                  Schon die Möglichkeit in Erwägung gezogen, dass das Bild einfach defekt ist? Speicher mal ab, was du vom Browser bekommst und sieh es dir in einem Bildbearbeitungsprogramm an. Oder lad es wo hoch, damit man es sich anschauen kann.
                  Ich bin auf dieser Seite gelandet, nachdem ich Stundenlang anderes versuchte.

                  https://www.codeofaninja.com/2011/02...se-in-php.html


                  Mit dem Ergebnis, das Deiner Vermutung ähnelt. Nähmlich dass wenn ich der Anleitung folge, ich einen ewig (auch von PHPMyAdmin mit einem Warndreieck als zu groß genannten) langen String bekomme, wenn ich ein Bild direkt in die Datenbank einfüge.
                  Das passiert wohl auch ,wenn ich Bilder über mein Script hochlade.

                  Kommentar


                  • #39
                    Was erwartest du denn sonst? Öffne mal ein Bild auf Deinem Rechner mit einem Hexeditor. Du erhältst auch nur eine Abfolge von Zeichen. Wenn du in der Doku file_get_contents() studieren würdest (http://php.net/manual/de/function.file-get-contents.php), würde Dir auffallen, dass das einen String zurückgibt.

                    Die meisten Lösungen legen die Bilder regulär (also als jpg/png/whatever) auf dem Filesystem ab und speichern nur den Link dorthin in der Datenbank.

                    Kommentar


                    • #40
                      Beim direkten Upload in die Datenbank funktioniert der Code aus dem Link...

                      Kommentar


                      • #41
                        ...Diese Funktion ist mit file() identisch, außer dass file_get_contents() die Datei in einem String zurückgibt...

                        Von meinen anderen 2 Seiten, auf denen ich mir den Code kopiert habe, läuft das aber alles. Da update ich die Tabelle.

                        Der Fehler liegt in diesen 2 Zeilen:

                        PHP-Code:
                        $imagedata =addslashes(file_get_contents($_FILES['file']['tmp_name']));
                            
                        $tmp_name getimageSize($_FILES['file']['tmp_name']); 

                        Kommentar


                        • #42
                          Weil addslashes() Müll ist. Wie kommst du auf die Idee das zu verwenden?

                          Kommentar


                          • #43
                            Wie dann?

                            Kommentar


                            • #44
                              Zitat von king-ich Beitrag anzeigen
                              Wie dann?
                              Ich habe bereits das PHP-Handbuch dazu verlinkt.

                              Kommentar


                              • #45
                                Damit kann ich arbeiten.

                                Melde mich wenn es denn mal funktionieren sollte...

                                Kommentar

                                Lädt...
                                X