AllesMeins: Bild aus Datenbank weiterverarbeiten

Hiho,

ich habe ein paar Bilder die ich gerne in einer mySQL Datenbank speichern will anstatt auf dem Server direkt.
1.) Kann es mir passieren das ich dort auf Schwierigkeiten stosse oder kann ich ein Bild an sich wie Text in die Datenbank schreiben?
2.) Angenommen erstens klappt. Kann ich ein Bild aus der Datenbank direkt weiterverarbeiten in PHP? Also ich mache ein SELECT bild FROM db und habe das komplette Bild dann in einer Variable, nennen wir sie $bild.
Kann ich daraus irgendwie direkt ein Bild generieren das ich mit den PHP image Funktionen bearbeiten kann oder muss ich immer den Umweg über eine temporäre Datei gehen?

Grüsse

Marc

  1. Hiho,

    ich habe ein paar Bilder die ich gerne in einer mySQL Datenbank speichern will anstatt auf dem Server direkt.
    1.) Kann es mir passieren das ich dort auf Schwierigkeiten stosse oder kann ich ein Bild an sich wie Text in die Datenbank schreiben?
    2.) Angenommen erstens klappt. Kann ich ein Bild aus der Datenbank direkt weiterverarbeiten in PHP? Also ich mache ein SELECT bild FROM db und habe das komplette Bild dann in einer Variable, nennen wir sie $bild.
    Kann ich daraus irgendwie direkt ein Bild generieren das ich mit den PHP image Funktionen bearbeiten kann oder muss ich immer den Umweg über eine temporäre Datei gehen?

    Grüsse

    Marc

    Hallo!
    Zu 1. Wieso willst du die Bilder in der DB speichern. Das kostet doch viel zu viel Speicher ==> Der Bildaufruf dauerrt bei einer großen Bilddatenbank demenstsprechend länger. Speicher doch einfach den Dateinamen in der DB und speciehr dein Bild auf dem Server.
    Wenn du dein Bild trotzdem in der DB speichern willst, kannst du das glaub ich als blob tun.

    Zu 2. Ja!

    1. Hallo!
      Zu 1. Wieso willst du die Bilder in der DB speichern. Das kostet doch viel zu viel Speicher ==> Der Bildaufruf dauerrt bei einer großen Bilddatenbank demenstsprechend länger.

      Es sind nur wenige relativ kleine Bilder. In so fern ist Performance kein Problem. Das ganze ist Teil eines Quizzes und deswegen will ich die Bilder gut "wegsperren" ausserhalb meines Serververzeichnisses kann ich leide rnicht speichern.

      Zu 2. Ja!

      Ja zu was? Ja es geht oder Ja du musst ne temporäre Datei anlegen?

      1. hi,

        Ja zu was? Ja es geht oder Ja du musst ne temporäre Datei anlegen?

        ja was? ja so zum beispiel http://www.php.net/manual/en/ref.image.php

        have phun,

        hoagie

  2. Hiho,

    ich habe ein paar Bilder die ich gerne in einer mySQL Datenbank speichern will anstatt auf dem Server direkt.
    1.) Kann es mir passieren das ich dort auf Schwierigkeiten stosse oder kann ich ein Bild an sich wie Text in die Datenbank schreiben?

    Wenn du es base64 codierst (MIME) dann ists nur text und du kannst es in einem BLOB Feld ablegen.

    2.) Angenommen erstens klappt. Kann ich ein Bild aus der Datenbank direkt weiterverarbeiten in PHP?

    blob auslesen , base64 decodieren und du hast das Bild unzerknittert wieder;

    Zum Browser schicken:
    den entsprechenden Content-type ausgeben und dann das image (binary).

    Gruss, Erwin

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?
    1. hi,

      Wenn du es base64 codierst (MIME) dann ists nur text und du kannst es in einem BLOB Feld ablegen.

      was ist denn das für eine logik?

      wenn er es erst in ascii-text umwandelt, dann kann er es auch gleich in einem der TEXT-typen abspeichern.

      bzw. umgekehrt, wofür heisst BLOB wohl BLOB (_binary_ large object)?
      ganz bestimmt nicht, damit man binäre daten in ascii umwandelt, bevor man sie hineinspeichert.

      gruss,
      wahsaga

      1. hi,

        Wenn du es base64 codierst (MIME) dann ists nur text und du kannst es in einem BLOB Feld ablegen.

        was ist denn das für eine logik?

        Tipp: informiere dich mal über MIME und base64.

        Und was ein blob - Feld ist, das wird auch irgendwo erklärt wo es um Datenbanken geht.

        Erwin

        --
        SELFforum - Das Tor zur Welt!
        Theoretiker: Wie kommt das Kupfer in die Leitung?
        Praktiker: Wie kommt der Strom in die Leitung?
        1. hi,

          Tipp: informiere dich mal über MIME und base64.

          ich weiss, was das ist.

          Und was ein blob - Feld ist, das wird auch irgendwo erklärt wo es um Datenbanken geht.

          ich weiss auch was das ist - was die abkürzung bedeutet, schrieb ich ja schon.

          und jetzt sag du mir lieber mal, was welchem grund man daten base64-kodieren sollte, bevor man sie in ein BLOB speichert?

          gruss,
          wahsaga

          1. Hello,

            und jetzt sag du mir lieber mal, was welchem grund man daten base64-kodieren sollte, bevor man sie in ein BLOB speichert?

            Es gibt keinen Grund dafür, die Daten, die IN ein Binary Large Object Field gespeichert werden sollen, im Zeichensatz zu reduzieren. Alle 256 Werte sind erlaubt. Für die Schnittstelle müssen sie allerdings escaped werden, da ja auch 0, ', ",  , usw. drinstehen können.

            Dafür nutzt man dann am besten eine der mysql_[real_]escape_string() Funktionen.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. hi,

              Es gibt keinen Grund dafür, die Daten, die IN ein Binary Large Object Field gespeichert werden sollen, im Zeichensatz zu reduzieren. Alle 256 Werte sind erlaubt.

              na eben ...

              Für die Schnittstelle müssen sie allerdings escaped werden, da ja auch 0, ', ",  , usw. drinstehen können.

              das versteht sich von selbst.

              gruss,
              wahsaga

              1. Hello,

                Es gibt keinen Grund dafür, die Daten, die IN ein Binary Large Object Field gespeichert werden sollen, im Zeichensatz zu reduzieren. Alle 256 Werte sind erlaubt.

                na eben ...

                Na sag ich doch! Aber das war wohl ein echter Erwin[tm]. Zweimal um die Ecke gedacht. Hab ich aber auch schon öfter geschafft ;-))

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  3. ich habe ein paar Bilder die ich gerne in einer mySQL Datenbank speichern will anstatt auf dem Server direkt.

    Das hast Du dir auch gut überlegt? In den meisten Fällen würde ich davon abraten, so vorzugehen.
    http://www.dclp-faq.de/q/q-db-blob.html

    1.) Kann es mir passieren das ich dort auf Schwierigkeiten stosse oder kann ich ein Bild an sich wie Text in die Datenbank schreiben?

    Eigentlich ist es nicht komplizierter als "normale" Daten in eine MySQL-DB zu schreiben.
    Genaueres dazu hier: http://www.dclp-faq.de/q/q-mysql-blob.html

    1. Hiho,

      Genaueres dazu hier: http://www.dclp-faq.de/q/q-mysql-blob.html

      Leider ein wneig sehr Outdated... jedenfalls auf nem System mit Register_globals = Off nicht zu gebrauchen... Naja, ich werd mir dann da halt was suchen müssen...