Re: In MySQL abgelegte Bilder in Dateien zurückverwandeln

DirkO wrote:

> Ich habe ein Projekt übernommen, bei dem Bild-Dateien in Blob-Feldern
> der Datenbank gespeichert sind.

Das ist ärgerlich...

> Momentan liegt die Bildinformation in einem Blob-Feld der Datenbank.
> Wie kann ich also mittels PHP
>
> a.) diese Information aus der Datenbank herauslesen,

Genau wie alle anderen Informationen. Unterschied gibts da keinen.

> "SELECT id FROM c_abteilung WHERE ac_file != '' ;" würde alle
> Datensätze lesen, was eine riesen Datenmenge bedeutet.

Na du must die ja nicht alle im Speicher halten.

> also in einer Schleife die Datensätze abarbeiten, welche Bilddaten
> enthalten, ohne alle Datensätze zu selektieren.

Das eine schließt das Andere ja nicht aus.

> b.) das Bild in eine PNG Datei schreiben,

Wie man halt ne Datei schreibt. Da gibts nix besonderes zu beachten.

> c.) der Datei einen eindeutigen Namen geben,

mit unique_id() z.B. Kann man auch mit Prefix o.ä. versehen.

> e.) den Namen anstelle des Bildes in der Datenbank ablegen, damit der
> Datensatz den Bezug zu der Bilddatei kennt und das Blobfeld leeren.

- Neu Spalte für Dateiname anlegen
- Durch Abfrageergebnisse iterieren und dabei
- Name + Pfad zur Bilddatei erstellen
- Bilddatei schreiben
- Dateiname + Datensatz-ID merken (Array) oder
gleich als SQL-Statement zum einfügen des Dateinamens
- Spalte mit blob für Bild löschen
- Alle Updates für die Dateinamen ausführen (z.B. als Transaktion)

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Di, 18 Dezember 2007 12:33 ] [ ID #1891575 ]
PHP » de.comp.lang.php.misc » Re: In MySQL abgelegte Bilder in Dateien zurückverwandeln

Vorheriges Thema: Re: Warum macht header("Content-Type: application/xhtml+xml") beixhtml mit dem IE Problem
Nächstes Thema: Re: Möglichkeit Arrays in eine variable Parameterliste zu überführen