Bild aus Datenbank weiterverarbeiten
AllesMeins
- php
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
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!
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?
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
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
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
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
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
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
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
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
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
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...