Blob als Datei speichern

am 17.03.2013 - 12:33 Uhr in
Hallo,
ich habe da eine scheinbar banale Aufgabe, an der ich mir die Zähne ausbeiße.
Ich habe eine MySQL-Tabelle, in der unter anderem Bilder und MP3-Dateien als Blob gespeichert sind. In Drupal (speziell Ubercart) kann ich mit Blobs nichts anfangen, ich brauche die Bilder als Dateien.
Wie kann ich also den Inhalt der Blobs in einer Massenverarbeitung als Dateien speichern? (Über 10.000 Datensätze, manuelle Abarbeitung unmöglich.)
Mein Handicap: ich kann nicht PHP programmieren. Ich brauche also irgendein Tool.
LG, Reiner
PS: Genau genommen importiere ich Daten aus dieser Tabelle in meine D7-Seite. Das geht mit Feeds sehr gut. Aber weder Feeds noch ein Plugin können Blob-Felder in das Drupal Bild-Feld bringen. Wäre mir auch egal, wenn ich die Bild- bzw. Audiodateien irgendwo gespeichert hätte.
- Anmelden oder Registrieren um Kommentare zu schreiben
http://www.bing.com/search?q=
am 17.03.2013 - 13:54 Uhr
http://www.bing.com/search?q=convert+blob+to+file&form=OSDSRC
Na solche Antworten liebe
am 17.03.2013 - 14:02 Uhr
Na solche Antworten liebe ich. So gescheit war ich auch schon!
ein toll gibts nicht
am 17.03.2013 - 14:10 Uhr
ein toll gibts nicht
Du wirst nicht dran vorbei kommen
am 17.03.2013 - 14:16 Uhr
die Datensätze von einem Programm durchlaufen zu lassen, das die BLOBs physisch auf den Plattenspeicher schreibt.
Prinzipiell ist das kein Hexenwerk. Ein bisschen PHP, oder eine andere Scriptingsprache, ist allerdings unumgänglich.
Wenn du ein bisschen Grundwissen in PHP hast, schau dir mal den Bereich um Streaming, und die Befehle rund um FILE an.
Im Prinzip läuft das darauf hinaus, dass eine Schleife über alle Datensätze laufen muss, und alle graphischen Blobs in eine Datei schreiben, deren Name aus dem Datensatz irgendwie ableitbar ist, so dass du das Bild wieder finden kannst.
Beim Import des Datensatzes musst du dann mit feeds_tamper einen Bildpfad generieren, der auf diese Datei verweist.
Hallo Ronald, das war
am 18.03.2013 - 11:03 Uhr
Hallo Ronald,
das war wenigstens eine Antwort, danke! Bloß wusste ich das alles auch vorher schon, und ich habe eben keine Grundkenntnisse in PHP o. ä., deshalb ja meine Frage nach einem Tool.
Aber eine andere Frage hab ich an dieser Stelle an dich: Welches Plugin von feeds_tamper verwendest du in so einem Fall? Ich habe Folgendes probiert:
Source: Blank Field 1
Target: Feld "Bild"
Plugin: Rewrite.
Da habe ich testweise für einen Datensatz den Pfad und den Namen zu einem Testbild angegeben. Das hat nicht funktioniert. Ich bekam immer den Fehler, dass das erste Argument für die Funktion substr ein String sein müsse, dieses Argument aber leer sei. Egal, ob ich den Pfad/Dateinamen ohne, mit einfachem oder doppelten Hochkomma angab. (substr habe nicht ich eingegeben, die Funktion wird scheinbar von Rewrite intern verwendet.)
Dabei habe ich das Bild vorher schon dort hin kopiert, wo es letztlich gespeichert wird, in dem Fall /sites/default/files, und natürlich auch diesen Pfad angegeben. In Rewrite stand also "/sites/default/files/testbild.jpg", und das Bild lag schon dort.
LG, Reiner
Du müßtes mit Feeds-tamper
am 18.03.2013 - 12:11 Uhr
Du müßtes mit Feeds-tamper einen Pfad (URL) bauen, von dem Das Bild importiert werden kann. Ich habe das mal mit dem Pfad auf eine fremde Seite problemlos hinbekommen. Du darfst lokal die Bilder nicht schon ins Zielverzeichnis legen. Drupal trägt beim Import den File in der Files-Tabelle ein und will ihn dann im Zielbereich ablegen. Also nimm irgendein Verzeichnis, auf des Du über das File-Protokoll zugreifen kannst. Dann sollte das in Ordnung sein.
Beste Grüße
Werner
Funkt nicht
am 19.03.2013 - 15:58 Uhr
Hi Werner,
tut mir leid, die Sache funktioniert nicht. Ich habe alles geprüft, ob ich mich wo vertippt habe oder so, meine Angaben passen. Dennoch wird kein Bild importiert. Oder braucht man dazu auch media_feeds?
Ich glaube, ein Problem ist, dass es für D7 sowohl von feeds als auch von feeds_tamper nur Aplha- und Beta-Versionen gibt. (Wie überhaupt extrem viele Module bis heute keine Vollversionen für D7 haben.) Z.B. funktioniert auch das Plugin "Default Value" in feeds_tamper nicht. :-(
Hast du deinen erwähnten Import in D6 gemacht?
LG, Reiner
Ich habe das definitiv unter
am 19.03.2013 - 18:03 Uhr
Ich habe das definitiv unter Drupal 7 gemacht. Es geht also.
Beste Grüße
Werner
Jetzt funktioniert's. Ich
am 19.03.2013 - 18:38 Uhr
Jetzt funktioniert's. Ich habe mich an einen Issue bei Feeds erinnert, dass die Feldnamen lowercase sein müssen. Jetzt finde ich den Issue gerade nicht. Jedenfalls war das das Problem, das entsprechende Feld hatte Großbuchstaben. Jetzt ist alles klein geschrieben, und jetzt geht's auch. :-)
LG, Reiner