PDF als bytea in Postgres-DB einfügen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
andi24
User
Beiträge: 56
Registriert: Freitag 5. März 2010, 11:42

Hyperion hat geschrieben: Naja, Du musst das ja beim Auslesen ja wohl auch wieder zurückwandeln - der Acrobat Reader kann doch bestimmt kein Base64 codiertes Dokument lesen, oder?
Ne, klar - hier wird auch ein anderes Programm verwendet (nicht in Python geschrieben), das das pdf wieder aus der Datenbank liest, base64-encodiert und dann den Acrobat Reader das Dokument öffnen lässt. Meine Baustelle wär aber nur, das Dokument ordentlich als base64-pdf in die DB zu schreiben...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

andi24 hat geschrieben: Ne, klar - hier wird auch ein anderes Programm verwendet (nicht in Python geschrieben), das das pdf wieder aus der Datenbank liest, base64-encodiert und dann den Acrobat Reader das Dokument öffnen lässt. Meine Baustelle wär aber nur, das Dokument ordentlich als base64-pdf in die DB zu schreiben...
Ok, dennoch müsste man ja evaluieren, wo der Fehler liegt! Und imho bist Du da noch nicht so weit. Insofern würde ich erst einmal manuell die Umwandlung innerhalb von Python nach base64 und zurück vornehmen und prüfen, ob das Dokument identisch ist (md5sum) und sich öffnen lässt (was dann logischer Schluss wäre).

Danach mit dem Zwischenschritt Datenbank - wenn Ihr es eh base64 codiert in die DB speichert, wozu dann eigentlich diese Binary-Verrenkung? Dank base64 wäre das doch eigentlich als normaler Text speicherbar?!?

Wenn das auch noch klappt, musst Du mal wohl oder übel den Code vom auslesenden Programm angucken und prüfen, was das genau tut. Denn dann liegt der Fehler wohl beim Auslesen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
andi24
User
Beiträge: 56
Registriert: Freitag 5. März 2010, 11:42

Ah stimmt, das Problem war einfach, dass ich decode statt encode benutzt hatte. Jetzt funktionierts und damit ist das Thema aber wirklich geschlossen :-) Nochmals vielen Dank euch allen!!
Antworten