Bilder in Datenbank packen

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

  • Bilder in Datenbank packen

    Wie kann ich ein Bild [.jpg] auslesen
    und dann in eine mysql DB packen und
    wenn ich es dann ansehen will da raushohlen ?

    Also ich hab mir dsa so vorgestellt:
    Code:
    $fp = fopen("im.jpg", "r");
    while(!feof($fp)) {
        $data = fgets($fp, "16256");
    }
    Da gibt er mir dann aber als Ergibniss
    nur einen viereckigen Kasten aus :-/

    Brauche ich eine bestimmt Library um ein Bild einzulesen ?
    Welches DB-Tabellenformat soltle ich am besten wählen ?

    Danke im Vorraus

  • #2
    Original geschrieben von newhx
    Brauche ich eine bestimmt Library um ein Bild einzulesen ?
    nein
    Welches DB-Tabellenformat soltle ich am besten wählen ?
    LONGBLOB
    Wie kann ich ein Bild [.jpg] auslesen
    und dann in eine mysql DB packen
    Code:
    $datei = 'bild.jpg';
    [b]// Array für Mime-Typen:[/b]
    $types = array ('', // Dummy
      'image/gif', 'image/jpeg', 'image/png', // Bilder
      'application/x-shockwave-flash' // Shockwave/Flash
    );
    [b]// Maße und Typ ermitteln[/b]
    $size = [url="http://www.php3.de/manual/de/function.getimagesize.php"]getimagesize[/url]($datei);
    if (!$size) die ('Fehler beim Ermitteln des Bildtyps');
    if (!$size(2)) die ('ungültiger Bilddtyp');
    [b]// Bilddaten lesen[/b]
    $data = '';
    $f = fopen($datei, 'rb');
    while ($s=fgets($f, 1024)) $data .= $s;
    [b]// in DB schreiben[/b]
    mysql_query ("insert into BILDER (MIME,WIDTH,HEIGHT,DATA)
      values ('". $types[$size[2]. "', $size[0], $size[1],
        '". [url="http://www.php3.de/manual/de/function.mysql-escape-string.php"]mysql_escape_string[/url]($data)."')");
    und wenn ich es dann ansehen will da raushohlen ?
    Code:
    [b]// Daten aus DB holen[/b]
    $q = mysql_query("select * from BILDER where ID=$id");
    $x = mysql_fetch_array($q);
    [b]// Mime-Typ an Browser senden[/b]
    [url="http://www.php3.de/manual/de/function.header"]header[/url]("content-type: $x[MIME]");
    [b]// Bilddaten ausgeben[/b]
    echo $x[DATA];
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Ein Großes Dankeschön

      Kommentar


      • #4
        RE

        HI,

        habe das script von Titus mal ausprobiert.

        In die Datenbank rein ist kein problem, aber raus.

        Bei der Ausgabe,
        auf das Array kann ich zugreifen, zumindest auf die WIDTH-HEIGHT und MIME. -passt auch.
        Auch alles die richtigen Datentypen: BILD - LONGBOLB alles andere CHAR(50).

        Nur zeigt er kein Bild an nur den kleine kasten mit rotem Kreuz.

        Kann es an Einstellung liegen ? WinXP - Apache Server.

        Gruß Tago
        --------------------------------------
        Nachts is kälter als draußen !

        Kommentar

        Lädt...
        X