kostenloser Webspace werbefrei: lima-city


bilder in mysql speichern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    pinguin55

    pinguin55 hat kostenlosen Webspace.

    Hallo an alle
    ich m?chte bilder oder die links von bilder in meine sql datenbank speichern

    dieses hab ich ausprobiert aber die bilder werden nicht gespeichert sondern nur leere datens?tze.
    und eine fehlermeldung:

    Warning: fread(): supplied argument is not a valid stream resource in test.php on line 15

    der code
    <?
      $Bild = fread(fopen($Bild, "r"), filesize($Bild));
    
      $Bild = addslashes($Bild);
    
      include ("config.inc.php");
    
    mysql_query("INSERT INTO firmen_db (Bild) VALUES ('$Bild')");
    if($Bild)
    {
    echo "Bild wurde hochgeladen und abgespeichert!";
     }
    
    mysql_close();
    ?>
    <html>
    <body>
    <form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
    <input type="file" name="Bild"><br>
    <input type="submit" value="Hochladen">
    </form>
    
    </body>
    </html>


    ich hoffe es kann mir jemand helfen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ist doch klar,
    denn du hast die Variable $Bild nicht richtig "gesetzt"

    Du musst vor dem Kram:

    $Bild = fread(fopen($Bild, "r"), filesize($Bild));



    $Bild = addslashes($Bild);

    zuerst noch sagen, was bild ist also so:

    $Bild = $_FILES["Bild"]["name"];
  4. christenlieder

    christenlieder hat kostenlosen Webspace.

    Erstmal rate ich dir die Seite von meinem Freund anzusehen: http://www.johny7.de.vu Er hat dort unter http://johny7.milten.lima-city.de/files/phps/inf10/blobs.php (Quellcode: http://johny7.milten.lima-city.de/files/phps/inf10/blobs.phps sowie http://johny7.milten.lima-city.de/files/phps/inf10/blob_1.phps) ein gutes Beispiel.

    Wichtig ist, dass deine Datenbank-tabellenspalte den Typ BLOB hat.

    Einf?gen kannst du dann so:
    $image = imagecreatefromjpeg(mysql_escape_string($bild));
    $sql="INSERT INTO firmen_db (Bild) VALUES ('".$image."');"; 
                    mysql_query($sql) OR die("Fehler");


    Das habe ich zwar noch nicht probiert, aber das ist auch nicht so elegant, wie die Variante bei johny7 mit File-Upload-Feldern:

    Datei blobs.php:
    echo '<form action="blobs.php?mode=do" method="POST" enctype="multipart/form-data">
       <!--enctype ist bei file-Upload erforderlich!--> 
            Datei: <input name="datei" type="file" size="50" maxlength="65536" accept="image/*" /> 
            <input type="Submit" value="Hochladen"> 
        </form>'; 
    if ($mode=="do") { 
        include ("config.inc.php");
        if (isset($HTTP_POST_FILES["datei"])) { 
            $_FILES=$HTTP_POST_FILES;// Upload-Status 
            if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) { 
                // Muster zur ?berpr?fung der im Dateinamen 
                // enthaltenen Zeichen (Optional) 
                $regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i"; 
                // Dateiname und Dateigr?sse 
                if (preg_match($regExp,$_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 65536) { 
                    // Tempor?re Datei in das Zielverzeichnis 
                    // des Servers verschieben. 
                    $arrayfile = file($_FILES["datei"]["tmp_name"]); 
                    for($x=0;$x<count($arrayfile);$x++){ 
                        $binar .= mysql_escape_string($arrayfile[$x]); 
                    } 
                    $sql="INSERT INTO firmen_db (Bild) VALUES ('".$binar."');"; 
                    mysql_query($sql) OR die("Fehler"); 
                    header("Location: blobs.php"); 
                    mysql_close(); 
                    // Redirect zur Erfolgs-Meldung 
                } else { 
                    echo "Fehler: Im Dateinamen oder Dateigr?ssen Limit!"; 
                } 
            } else { 
            echo "Fehler: W?hrend der ?bertragung aufgetreten!"; 
            } 
        } else { 
            echo "Fehler: Dateiupload fehlgeschlagen!"; 
        } 
    
    
    }else { 
        header("Location: blobs.php"); 
    }


    Du kannst ja bei johny7 mal testweise Bilder hochladen. Dann siehst du am Besten, wie's funktioniert. Noch viel erfolg...

    Beitrag ge?ndert am 31.01.2006 13:03 von christenlieder
  5. Autor dieses Themas

    pinguin55

    pinguin55 hat kostenlosen Webspace.

    Erst einmal danke f?r eure schnelle antworte

    ich hatte das ganze wochenende getestet und gelesen
    hatte schon kopfwe.

    werde ich noch heute testen.
    nochmals danke


  6. Erstmal rate ich dir die Seite von meinem Freund anzusehen: http://www.johny7.de.vu Er hat dort unter http://johny7.milten.lima-city.de/files/phps/inf10/blobs.php (Quellcode: http://johny7.milten.lima-city.de/files/phps/inf10/blobs.phps sowie http://johny7.milten.lima-city.de/files/phps/inf10/blob_1.phps) ein gutes Beispiel.

    Wichtig ist, dass deine Datenbank-tabellenspalte den Typ BLOB hat.

    Einf?gen kannst du dann so:
    $image = imagecreatefromjpeg(mysql_escape_string($bild));
    $sql="INSERT INTO firmen_db (Bild) VALUES ('".$image."');"; 
                    mysql_query($sql) OR die("Fehler");


    Das habe ich zwar noch nicht probiert, aber das ist auch nicht so elegant, wie die Variante bei johny7 mit File-Upload-Feldern:

    Datei blobs.php:
    echo '<form action="blobs.php?mode=do" method="POST" enctype="multipart/form-data">
       <!--enctype ist bei file-Upload erforderlich!--> 
            Datei: <input name="datei" type="file" size="50" maxlength="65536" accept="image/*" /> 
            <input type="Submit" value="Hochladen"> 
        </form>'; 
    if ($mode=="do") { 
        include ("config.inc.php");
        if (isset($HTTP_POST_FILES["datei"])) { 
            $_FILES=$HTTP_POST_FILES;// Upload-Status 
            if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) { 
                // Muster zur ?berpr?fung der im Dateinamen 
                // enthaltenen Zeichen (Optional) 
                $regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i"; 
                // Dateiname und Dateigr?sse 
                if (preg_match($regExp,$_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 65536) { 
                    // Tempor?re Datei in das Zielverzeichnis 
                    // des Servers verschieben. 
                    $arrayfile = file($_FILES["datei"]["tmp_name"]); 
                    for($x=0;$x<count($arrayfile);$x++){ 
                        $binar .= mysql_escape_string($arrayfile[$x]); 
                    } 
                    $sql="INSERT INTO firmen_db (Bild) VALUES ('".$binar."');"; 
                    mysql_query($sql) OR die("Fehler"); 
                    header("Location: blobs.php"); 
                    mysql_close(); 
                    // Redirect zur Erfolgs-Meldung 
                } else { 
                    echo "Fehler: Im Dateinamen oder Dateigr?ssen Limit!"; 
                } 
            } else { 
            echo "Fehler: W?hrend der ?bertragung aufgetreten!"; 
            } 
        } else { 
            echo "Fehler: Dateiupload fehlgeschlagen!"; 
        } 
    
    
    }else { 
        header("Location: blobs.php"); 
    }


    Du kannst ja bei johny7 mal testweise Bilder hochladen. Dann siehst du am Besten, wie's funktioniert. Noch viel erfolg...

    Beitrag ge?ndert am 31.01.2006 13:03 von christenlieder

    das mit dem blob stimmt nicht,
    geht auch mit nem ganz normalen VARCHAR oder eben TEXT
  7. Autor dieses Themas

    pinguin55

    pinguin55 hat kostenlosen Webspace.

    ich hab mal gelesen das man nur die links
    wo die bilder liegen in eine datenbank speichern sollte und nicht die bilder selbst in die datenbank
    ablegen sollte.??????????????????????????
    :confused::confused::confused:

  8. ich hab mal gelesen das man nur die links
    wo die bilder liegen in eine datenbank speichern sollte und nicht die bilder selbst in die datenbank
    ablegen sollte.??????????????????????????
    :confused::confused::confused:


    dann hast du richtig gelesen, denn das abspeichern ganzer bilder in einer Datenbank ist f?r den Server enorm aufwendig und beeintr?chtigt die Leistung des Servers. Sowas ist hier eigentlich nicht gern gesehen, aber dennoch erlaubt
  9. Autor dieses Themas

    pinguin55

    pinguin55 hat kostenlosen Webspace.

    kannste mir einen tip geben wie ich das machen kann
    ?????

    ich habs schon mal selbst versucht und

    naja :confused::confused::confused:
  10. <?$image = imagecreatefromjpeg(mysql_escape_string($bild));


    ist dieser code jetzt richtig oder nicht?

    wenn ich auf diese art das bild in die datenbank schreibe, wie kann ich es wieder ausgeben?
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!