blob aus SQL DB - Problem mit fread()

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

  • blob aus SQL DB - Problem mit fread()

    Hallo,

    ich habe ein Dateiupload der sieht folgendermaßen aus:

    PHP-Code:
    if(isset($_GET['submit']))
    {
    $dbconnect =mysql_connect ("localhost","root","Nadine0310");
    $select_db=mysql_select_db ("mp3",$dbconnect);
    $pfad_zur_datei $_FILES['datei']['tmp_name'];
    $bild=addslashes(fread(fopen($pfad_zur_datei"r"), filesize $pfad_zur_datei)));
          
    mysql_unbuffered_query("UPDATE `mp3s` 
                                              SET cover = '"
    .$bild."', 
                                              filetyp = '"
    .$_FILES['img']['type']."' 
                                              WHERE id = '
    $id'");
      } 
    unterdrunter steht dann folgender Script:

    PHP-Code:
     <form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
    <?
    echo "<input type='hidden' name='id' value='$id'><br>";
    echo "<input type='file' size ='1' name='datei'><br>";
    echo "<input type='submit' name='submit' class='Button' value='upload'><br>"; 
    echo "</form>";

    Ich bekomme immer wenn ich mir eine Datei ausgesucht habe (ist ein jpg mit 16KB größe) und auf upload geklickt habe folgend eMeldung:

    Warning: fread(): supplied argument is not a valid stream resource in C:\Programme\XAMPP\xampp\phpMyAdmin\pages\mp3\datenbank.php on line 222

    in der Zeile steht folgender Code
    PHP-Code:
    $bild=addslashes(fread(fopen($pfad_zur_datei"r"), filesize $pfad_zur_datei))); 
    Kann mir irgendwer sagen was ich hier falsch mache??? Ich komme nicht weiter wenn ich das alles in eine extra Datei packe dann funktioniert es, aber nicht in meinem ganzen Script.

    HILFE!!!

    Danke und Gruß
    Zuletzt geändert von Jache84; 10.10.2006, 11:06.

  • #2
    vielleicht schreibst du als erstes mal die funktionen zeile für zeile untereinander, anstatt alles in eine zeile zu klatschen.

    dann solltest du dir fopen() nochmal anschauen. wenn du binärdaten lesen willst, macht es sinn, die auch entsprechend zu öffnen.
    Kissolino.com

    Kommentar


    • #3
      Re: blob aus SQL DB - Problem mit fread()

      Original geschrieben von Jache84
      $bild=addslashes(fread(fopen($pfad_zur_datei, "r"), filesize $pfad_zur_datei)));
      Was enthält eigentlich diese Konstante namens filesize ...?

      Und warum hast du den danach folgenden nächsten Parameter $pfad_zur_datei nicht durch ein Komma von dieser abgetrennt, sondern ein Leerzeichen dazwischen stehen?


      Eigentlich müsste das einen dicken parse error geben.


      Und bevor du antwortest, liest du bitte die Regeln, und brichst deinen Code um!
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        hmm, was meinst du mit die funktion untereinander schreiben, was ist nicht ordnetlich geschrieben?

        bei der funktion fopen() habe ich eben noch mal im Inet geschaut da steht es überall genauso wie ich es geschrieben habe. Oder muss ich auf etwas bestimmtes aufpassen?

        Danke und Gruß
        Zuletzt geändert von Jache84; 10.10.2006, 11:09.

        Kommentar


        • #5
          ähm, ja irgendwie ging da das Strg+C und Strg+V ind ie Hose also nochmal mein Code sieht folgender maßen aus:

          PHP-Code:
          $dbconnect =mysql_connect ("localhost","root","Nadine0310");
          $select_db=mysql_select_db ("mp3",$dbconnect);
          $pfad_zur_datei $_FILES['datei']['tmp_name'];
          $open fopen($pfad_zur_datei"r");
          $filesize filesize($pfad_zur_datei);
          $fread fread($open$filesize);
          $bild=addslashes($fread);
          mysql_unbuffered_query("UPDATE `mp3s` 
                                                    SET cover = '"
          .$bild."', 
                                                    filetyp = '"
          .$_FILES['img']['type']."' 
                                                    WHERE id = '
          $id'"); 
          Zuletzt geändert von Jache84; 10.10.2006, 11:14.

          Kommentar


          • #6
            Warum manchst du keinerlei Fehlerbehandlung? (z.B. keinerlei Check des Rückgabewertes von fopen)

            error_reporting ist doch hoffentlich auf E_ALL gestellt?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ich glaube ich bin ein schritt weiter, denn genau da swas du eben gesagt hast habe ich mal getan.

              $_FILES ist ja eine Superglobale für POST werte.

              Ich verwende aber nur GET überall. Kann es damit zusammen hängen?

              Wie heißt das gegenteil von $_FILES also das für GET???

              Danke und Gruß

              Kommentar


              • #8
                ups also jetzt error reporting ist angestellt.

                Ich bekomme diese Meldungen. Sagen mir aber irgendwie nichts.

                Notice: Undefined index: C:\Programme\XAMPP\xampp\phpMyAdmin\pages\mp3\cover.jpg in
                C:\Programme\XAMPP\xampp\phpMyAdmin\pages\mp3\datenbank.php on
                line 223

                Warning: fread(): supplied argument is not a valid stream resource in
                C:\Programme\XAMPP\xampp\phpMyAdmin\pages\mp3\datenbank.php on
                line 228

                Notice: Undefined index: in
                C:\Programme\XAMPP\xampp\phpMyAdmin\pages\mp3\datenbank.php on
                line 231

                Kommentar


                • #9
                  die function fread() ist noch nicht in deinen script. und die zeilen mit den undefined index müsstest du mal bezeichnen, damit wir wissen welche zeilen damitgemeit sind.
                  Webdesign und Webentwicklung - Plunix.de

                  Kommentar


                  • #10
                    Okay habe es jetzt soweit alles hinbekommen. Allerdings zeigt er mir nur das Bild an wenn dieses in keinem <tr> oder <td> oder sonst was steht. Wie geht es das ich es mir anzeigen kann in einem <td>. Denn momentan bekomme ich in einem <td> nur irgendwelche zigtausend zeichen. sobald ich das <td> weg mache und das <tr> auch und so dann sehe ich das bild.

                    Kommentar


                    • #11
                      Original geschrieben von Lennie
                      die function fread() ist noch nicht in deinen script.
                      fread ist eine php-Funktion fread

                      Original geschrieben von Jache84
                      Okay habe es jetzt soweit alles hinbekommen. Allerdings zeigt er mir nur das Bild an wenn dieses in keinem <tr> oder <td> oder sonst was steht. Wie geht es das ich es mir anzeigen kann in einem <td>. Denn momentan bekomme ich in einem <td> nur irgendwelche zigtausend zeichen. sobald ich das <td> weg mache und das <tr> auch und so dann sehe ich das bild.
                      Bitte? Meinst du damit, dass du versuchst Binäre-Bild-Daten in ein HTML-Dokument zu schreiben?
                      Klar, dass das nicht geht...

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        ja habe doch oben drüber geschrieben das es jetzt geht.

                        Habe es so gemacht das ich folgendes aufrufe:

                        PHP-Code:
                        echo "<img src= 'getimage.php'></img>"

                        in dem Script getimage.php steht folgendes ist recht kurz:

                        PHP-Code:
                        <?
                        $dbconnect =mysql_connect ("localhost","root","");
                        $select_db=mysql_select_db ("mp3",$dbconnect);

                        $id=$_GET['id'];
                         $sql8 = "SELECT * FROM `mp3s` WHERE `id` = '$id'";
                         $result8 = mysql_query($sql8) or die ("Fehler in SQL : $sql");
                         while ($line8 = mysql_fetch_array($result8, MYSQL_ASSOC))
                         {
                           echo $line8['cover'];
                         }

                        so das klappt jetzta uch sowiet. Allerdings sehr ihr ja das in der datei getimagesize.php eine Variable id verlangt wird. Wie kriege ich es denn hin das ich mir in dem aufrufe echo "<img src= 'getimage.php'></img>"; die mit übergeben kann.

                        mit einem ? hintendran und die Variable übergebn klappt nicht, dann bekomme ich einfach ein leeres image also so eins mit dem kleinen roten X links oben in der Ecke.

                        Welche Möglichkeit habe ich noch?

                        Danke und Ganz Lieben Gruß an alle Helfer bis hier hin.

                        Kommentar


                        • #13
                          Original geschrieben von Jache84
                          mit einem ? hintendran und die Variable übergebn klappt nicht, dann bekomme ich einfach ein leeres image also so eins mit dem kleinen roten X links oben in der Ecke.
                          Das ist aber der richtige Weg und "geht nicht" ist keine Fehlerbeschreibung

                          Welche Möglichkeit habe ich noch?
                          Sessions. Aber wenn GET schon nicht geht, dann geht Session wohl erst recht nicht klar...

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar


                          • #14
                            Danke ich habs. Jetzt geht alles bei diesem Kapitel


                            Hatte diese zeile so geschrieben gehabt.
                            PHP-Code:
                            echo "<img src= 'getimage.php?id='".$id.'"'></img>"; 
                            Richtig ist aber die beiden Hochkommatar bei dem $id weg zulassen.

                            richtig
                            PHP-Code:
                            echo "<img src= 'getimage.php?id=".$id."'></img>"
                            Danke nochmal allen.

                            Liebe Grüße
                            Jochen

                            Kommentar

                            Lädt...
                            X